私は仕事があります。私はいくつかの乱数を持っていて、この数の値を含んでいて、遅れています。マルチスレッドプログラミング
遅延とは、この遅延(秒)後にこの数値が更新される(値と遅延)ことを意味します。
私がする必要があることは、次にあることです。たとえば、5つの数字があります。それらのすべては同じ形になっています。したがって、プログラムを開始するときには、最初の数値を取得し、遅延を取得し、この数値のThread.Sleep(遅延)を実行し、更新してから2番目の数値を取得し、遅延などを取得する必要があります。それが最後のものに達すると、最初の番号をもう一度、次に2番目の番号を取得する必要があります。ループのように。
新しいスレッドです。だから誰かが私にどのように動作すべきか説明することができますか?
私はメインフォームを持っているので、私は5つのUserControlsを持っています(リスト<でそれらを保持します)。各コントロールにはUpdateNumber()メソッドがあり、現在の番号の値と遅延を更新します。メインフォームで何をすべきですか?スレッド[]配列を作成する必要がありますか?次に、各UserControlをそこに配置しますか?その後、それらのすべてを起動し、何とか監視しますか?
スレッドについてよく分かりますか。しかし、私にとっては初心者にとってはかなり複雑です。
P.S.私は次の仕事に必要なものよりも。それは同じですが、この数字はすべて別々に働きます。例えば、最初の数字には最初の5秒の遅れがあります。 5秒遅れに達すると、それ自体が更新されます。 2番目の数字と他のすべての数字は同じです。
OPには「メインフォーム」が含まれているので、Windows.Forms.Timerを使用するほうがいいでしょう。 GUIでの呼び出しの問題を回避します。 –
@Henk:私はまだ 'System.Threading.Timer'を使い、それを必要とする操作、つまりコントロールを読み書きするためのGUIスレッドしか使用しません。問題は、何らかのビジネスロジックに数値を使用するなど、非GUI関連の処理の程度を明らかにしていませんが、非GUIスレッドでこれを実行し、GUIベースのスレッドのみを分離する方が良いと思います。 GUIスレッド上で明示的に呼び出されます。これにはより多くのコードが含まれていると私は認めますが、アプリケーションが成長するにつれてGUIを応答し続けるのに役立ちます。 –