ふらっと C#,C♯,C#(初心者用) Part142at TECHふらっと C#,C♯,C#(初心者用) Part142 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト115:デフォルトの名無しさん 19/03/26 10:53:32.84 RcQOpHon0.net >>109 イベントハンドラーの中で計算しているから、UIスレッドを掴んだままになってる。 非同期処理化すれば解決するが、計算中もUIを触れるから別途対策が必要。ウィンドウかボタンを無効化とか。 private async void button_Click(object sender, EventArgs e) { this.Enabled=false; リッチテキストボックス.Text=(見出し); await Task.Run( () => ◆計算◆ ); リッチテキストボックス.AppendText(ここに計算結果を表示); this.Enabled=true; } 116:デフォルトの名無しさん 19/03/26 10:55:43.23 fe5vrK8S0.net >>108 速度的な問題点を無視すれば、 編集ソフトでファイルを読み込んだ直後から人間が操作したコマンドの履歴を 全て記録しておいて、ファイルを読み込んだ直後から、最初から最後の1つ手前 まで、その履歴のコマンドを順に再実行するようにすればUndoは実現できる 事は出来る。 この方法だと、操作の途中に重たい処理が挟まっていた場合が問題となる。重たい 処理が行われた場合は、処理の最初と最後でデータをファイルに保存してしまって、 Undoするときはそれを「起点」にする方法も考えられる。ただし、この場合は、 ファイルへの保存に時間がかかる問題が残る。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch