私はボタンとタイマーを持っていますが、10分ごとにコードを実行し、複雑さのために約2分かかります。私はボタンを押して別のフォームを開くとき、私の問題は、すべての計算が終了するまで、タイマーがプログラムをフリーズし始めるときに、私はタイマーが実行を開始し、私は使用することができませんフォームを使用することはできませんタイマーのない他のフォーム。バックグラウンドでタイマーを実行するメソッドが見つからないため、タイマーで計算中に他のものを自分のフォームに入れたいのですがc#バックグラウンドでタイマーを動作させる方法
-5
A
答えて
2
Timer.TickイベントハンドラーはUIスレッドで実行されます。私。アプリケーションのメインスレッド。このスレッドは、アプリケーションを画面上に描画します。 UIスレッドでイベントハンドラを実行すると、このハンドラでUIコントロールを使用できますが、その時間にUIが描画されないため、Tickイベントハンドラで長時間実行される操作ではアプリケーションはフリーズします。
代わりにSystem.Threading.Timerを使用する必要があります。コールバックはバックグラウンドスレッドで実行されます。アプリケーションはUIを描画するためにメインスレッドを使用し、他のスレッドのポートからデータを読み込みます。
timer = new System.Threading.Timer(_ => CheckPort(), null, 30000, 0);
あなたの時間を30000に置き換えてください!
private void CheckPort()
{
//view form
}
希望すると、これが役立ちます。
関連する問題
- 1. タイマーはバックグラウンドで動作します
- 2. Cでゲームと同時に動作するタイマーを作成する方法は?
- 3. c#タイマーの異常動作
- 4. バックグラウンドでデバイスを振動させ続ける方法
- 5. UILabelタイマーをバックグラウンドで更新する方法
- 6. MFCのC++プロジェクトでJsonCPPを動作させる方法
- 7. qtcreatorをC++で動作させる方法
- 8. コンパイラ間でC++プログラムを動作させる方法
- 9. C#Windowsサービス - タイマーがデバッグで動作していません
- 10. C#Application Path Webサイトで動作させる方法
- 11. タイムアウトでタイマーを作成する方法
- 12. バックグラウンドでタイマーを実行する
- 13. Visual studio C#タイマーが動作しない
- 14. C++はタイマーをバックグラウンドで実行していますか?
- 15. C#タイマーが正しく動作しません
- 16. タイマーが正常に動作していませんか? C#
- 17. C#別のパネルをタイマーで別の方向に移動する方法
- 18. スクリプトはバックグラウンドで動作しません
- 19. ロールアニメーションを動作させる方法(ルーレット)
- 20. Mamp - Gzipを動作させる方法
- 21. angular2 [innerHtml]を動作させる方法
- 22. Gitzillaを動作させる方法
- 23. EmberJS:カルーセルを動作させる方法
- 24. RadioButtonを動作させる方法
- 25. タイマーを再起動する方法は?
- 26. タイマーでイベントを発生させる方法は?
- 27. macOSでCタイマーを作成する
- 28. C#でタイマーを作成するには?
- 29. JoomlaでXmlrpcをインストールしてC#で動作させる方法は?
- 30. タイマーの時間ピッカーダイアログを作る方法
コードを入力してください。 – Toodoo
[ask]を読んで[ツアー]を受けてください – Plutonix
timerメソッド内で 'BackgroundWorker'または' Task'を使用してください。 Winformsタイマーは常にUIスレッドで実行されるため、あなたが言うようにフリーズします。 – Alejandro