ユーザーがタスクを追加できるリストビューを含むフォームがあります。次に、ユーザーはボタンをクリックして、アプリケーションがリストビューの各タスクを1つずつ実行して実行します。
これらのタスクは、実際にタスクを完了する命令に似ています。これを行うには、各アイテムを通過するループを含むクラスを作成し、各アイテムに設定したタスク(命令)を完了します。解析を開始するために、その関数を呼び出すフォームにボタンがあります。IE:RunTask(listview1、1)-基本的に、これはすべて、指定されたリストビューと開始するアイテムを使用して、クラスにあるループを開始します。
画面がロックされることを除いてすべてが完璧に機能するため、アプリケーションがこれらのリストビューアイテムを解析するのを停止する停止機能を実装することはできません。個別に実行したいスレッドは常にこのリストビューにアクセスするため、クロススレッドなしでこれを実装する方法がわかりません。リストビューを削除するためにプログラムを再設計することは現実的ではありません。私はapplication.doeventsを試しましたが、それはあまりにも多くのバグを引き起こしました。私はこれを修正する方法について何日も研究してきましたが、私にはわかりません。うまくいけば、誰かが光を当てることができます。
また、この問題を解決するためにバックグラウンドワーカーをすでに追加しましたが、明らかにcheckforillegalcrossthreadcalls = falseに設定する必要があり、これは賢明ではないことはわかっています。