を更新しないバインドiListというDGVは、私は簡単なテストクラスを持っている
TEST_CLASS n = new TEST_CLASS();
MY_CLASS.Add(n);
grid_nodes.DataSource = MY_CLASS;
Thread t = new Thread(set1);
t.Start();
Thread t2 = new Thread(set2);
t2.Start();
とスレッドその更新テスト目的のクラスのランダム値:
public void set1()
{
while (true)
{
Random r = new Random();
MY_CLASS[0].IP = r.Next(999900);
Thread.Sleep(100);
}
}
public void set2()
{
while (true)
{
Random r = new Random();
MY_CLASS[0].PORT = r.Next(999900);
Thread.Sleep(100);
}
}
問題は、DGVが正しく更新されていないことです。私は、セル内をクリックするたびに更新を見るだけです。
私は何千もの行を持ち、MY_CLASSを更新する別々のスレッドを持っているので、DGVに 'live'と表示されるように変更する必要があります。
私の知る限り、クラスを更新するたびにDGV.Update()を呼び出す必要がありますか?私はクラスを絶えず更新している何千ものスレッドを持っているので、これを行う最良の方法は何でしょうか?ありがとう!
'何千ものスレッドが絶えずクラスを更新しています 'というのは面倒ですが、クラスがスレッドセーフであることは確かですか? –
@JoshuaDrakeあなたが何を意味するかわからない、おそらくないだろう。リスト内の変数を持つ単純なクラスです。私はこれについてもっと知ることができるところを教えてくれますか?また、私が探しているのは、私が達成しようとしていることをする単純なコード例ですが、何も見つけられないようです。これは本当に達成すべき課題の「リア」ですか?ありがとうございました – user1015551
[Thread Synchronization in C#](http://www.albahari.com/threading/part2.aspx)、[Thread-Safe Collections](http://msdn.microsoft.com/en-us) /library/dd997305.aspx)をC#で実行します。 –