-1

私はC#(Windowsフォーム)(ビジュアルスタッド2012)でコーディングされた小さなアプリケーションを持っています。アプリケーションを実行すると、アプリケーションが実行されているときはウィンドウをクリックしたり、移動したりすることさえできません。プロセスどうすればこの問題を解決できますか?

4

3 に答える 3

3

BackgroundWorker Control/Classを実装できます。

これを行うには、コントロールBackgroundWorkerをツールボックスからフォームにドラッグするだけです。作成したばかりのバックグラウンド ワーカーを選択し、ダブルクリックします。ここで、UI とは別に実行する必要があるすべてのコードをこのイベントに入れます。

例:

//Assuming we have a background worker called backgroundWorker
private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) {

     //put code here

}

コードのトリガー ブロックで、 を呼び出しますbackgroundWorker.RunWorkerAsync()

例:

private buttonDoWork_Click(object sender, EventArgs e) { 
    backgroundWorker.RunWorkerAsync(); 
}

注意してスレッドセーフにしてください。

于 2013-06-20T16:09:37.857 に答える
0

BackgroundWorker クラスの使用をご覧ください

別のスレッドで操作を実行します。

BackgroundWorker クラスを使用すると、別の専用スレッドで操作を実行できます。ダウンロードやデータベース トランザクションなどの時間のかかる操作により、実行中にユーザー インターフェイス (UI) が応答を停止したように見えることがあります。レスポンシブな UI が必要で、そのような操作に関連する長い遅延に直面している場合、BackgroundWorker クラスは便利なソリューションを提供します。

于 2013-06-20T15:58:27.380 に答える