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

わんくま同盟

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

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

■96010 / 2階層)  Task起動先が、Task起動元の終了を検知する方法について
□投稿者/ furu (78回)-(2020/10/15(Thu) 15:45:46)
No96009 (kiku さん) に返信
FormClosingイベントのタスク終了判定は
IsCompletedを使ったほうが
TaskEnd変数の処理がいらなくなり
すっきりします。

それとToken渡さなくても大丈夫な気がします。

    //private bool TaskEnd = false;
    private Task task;

    private void Form2_Shown(object sender, EventArgs e)
    {
        textBox1.AppendText("UDP通信タスクを起動します" + "\r\n");
        cts = new CancellationTokenSource();
        task = Task.Run(RunProcTask);
    }

    private void RunProcTask(C)
    {
        while (true)
        {
            if (cts.IsCancellationRequested) return;
            Thread.Sleep(1000);
            Invoke(new Action<string>(this._PutLog), "処理");
        }
    }

    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        cts.Cancel();

        while (!task.IsCompleted)
        {
            Application.DoEvents();
        }
    }

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: Task起動先が、Task起動元の終了を検知する方法について /kiku →Re[3]: Task起動先が、Task起動元の終了を検知する方法について /kiku
 
上記関連ツリー

Task起動先が、Task起動元の終了を検知する方法について / taro (20/10/15(Thu) 10:33) #96002
Re[1]: Task起動先が、Task起動元の終了を検知する方法について / WebSurfer (20/10/15(Thu) 10:51) #96003
Re[1]: Task起動先が、Task起動元の終了を検知する方法について / WebSurfer (20/10/15(Thu) 11:10) #96005
Re[1]: Task起動先が、Task起動元の終了を検知する方法について / kiku (20/10/15(Thu) 14:58) #96009
│└ Task起動先が、Task起動元の終了を検知する方法について / furu (20/10/15(Thu) 15:45) #96010 ←Now
│  └ Re[3]: Task起動先が、Task起動元の終了を検知する方法について / kiku (20/10/15(Thu) 15:48) #96011
│    └ Re[4]: Task起動先が、Task起動元の終了を検知する方法について / furu (20/10/15(Thu) 16:03) #96012
Re[1]: Task起動先が、Task起動元の終了を検知する方法について / WebSurfer (20/10/16(Fri) 11:05) #96016
Re[1]: Task起動先が、Task起動元の終了を検知する方法について / WebSurfer (20/10/21(Wed) 11:50) #96093
  └ Re[2]: Task起動先が、Task起動元の終了を検知する方法について / taro (20/10/23(Fri) 14:40) #96149 解決済み

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