C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■102816 / 4階層)  非同期処理
□投稿者/ とっちゃん (806回)-(2024/01/06(Sat) 22:26:26)
No102813 (まさ さん) に返信
> ■No102812 (とっちゃん さん) に返信
>>■No102807 (まさ さん) に返信
> >>C# Windowsフォームアプリケーション .NetFramework
> ありがとうございます
> form1で1秒毎にデータを読込み折れ線グラフを表示させている時
> form3を走らせるとform1の折れ線グラフが止まってしまします
> form1をどのように変更させて頂けばよろしいでしょうか
>
furuさんからも指摘がありますが、form3 はどのように走らせているのでしょうか?

それによって、改善ポイントが変わってくるのではないか?と思います。

それと、取りこぼしは、たまに起こる(1秒だけ抜けてるなど)のか
form3を表示している間ずっと起こるのでしょうか?

後者であれば、おそらく、form3 を走らせるというのは、Process.Start() を指していて
Process.WaitForExit()で終了待ちしているのでは?と想像ができます。

もしそうだとすると、WaitForExit() を別スレッドにする(一番変更コストは低そう)か、
そもそも待機しないようにするほうが良いでしょう。

もし、待機する必要がある(2個起動させないなど)なら、WaitForExitAsync() にして
非同期に終了待ちするようにしたうえで、再入防止フラグなどを用意して
待機中にもう一度呼び出ししないようにするなどの対応が必要だと思います。

Process.Start ではなく、Show() あるいは、ShowDialog() で表示しているということであれば
表示するタイミングで、タイマーを止めていないかを確認してください。

現状見せてもらったコードで言える範囲はこのくらいだと思います。
編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[3]: 非同期処理 /まさ 返信無し
 
上記関連ツリー

非同期処理 / まさ (24/01/06(Sat) 09:59) #102807
Re[1]: 非同期処理 / WebSurfer (24/01/06(Sat) 10:52) #102808
Re[1]: 非同期処理 / とっちゃん (24/01/06(Sat) 15:37) #102812
  └ Re[2]: 非同期処理 / まさ (24/01/06(Sat) 17:58) #102813
    ├ Re[3]: 非同期処理 / まさ (24/01/06(Sat) 17:59) #102814
    │└ 非同期処理 / とっちゃん (24/01/06(Sat) 22:26) #102816 ←Now
    └ Re[3]: 非同期処理 / furu (24/01/06(Sat) 20:29) #102815
      └ Re[4]: 非同期処理 / まさ (24/01/07(Sun) 20:28) #102819
        └ Re[5]: 非同期処理 / とっちゃん (24/01/07(Sun) 23:49) #102820
          └ Re[6]: 非同期処理 / takahiro (24/01/15(Mon) 22:01) #102848
            ├ Re[7]: 非同期処理 / WebSurfer (24/01/15(Mon) 22:11) #102849
            │└ Re[8]: 非同期処理 / takahiro (24/01/15(Mon) 22:21) #102850
            │  └ Re[9]: 非同期処理 / WebSurfer (24/01/15(Mon) 22:24) #102851
            │    └ Re[10]: 非同期処理 / takahiro (24/01/15(Mon) 22:33) #102852
            ├ Re[7]: 非同期処理 / とっちゃん (24/01/16(Tue) 11:33) #102853
            └ Re[7]: 非同期処理 / kiku (24/01/17(Wed) 11:03) #102861

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信