0
我目前正在學習如何在c#中使用任務,我希望能夠同時運行2個任務。那麼當第一個任務結束時。告訴代碼停止第二個。我已經嘗試了很多事情,但沒有工作過,我曾嘗試:運行時,我可以在任務內改變int值嗎? c#
嘗試尋找到task.stop相關的東西,並沒有發現它。我正在使用task.wait進行第一個任務,所以當第一個任務結束時,我必須做一些事情來阻止第二個任務。因爲第二個是無限的(它是一個永恆的循環)我試圖使循環的參數,我可以在主代碼中改變,但它像任務是一種方法,它們中的變量是唯一的。
TL; DR:我想知道是否可以在任務內改變一個參數,以阻止它從代碼之外。做任務本身採取任何參數?我可以在開始運行後在主代碼中更改它們嗎?
如果以前的事情都不可能,那麼可以以任何方式停止無限的任務嗎?
CODE:
Task a = new Task(() =>
{
int sd = 3;
while (sd < 20)
{
Console.Write("peanuts");
sd++; //this i can change cuz its like local to the task
}
});
a.Start();
// infinite task
Task b = new Task(() =>
{
int s = 3; // parameter i want to change to stop it
while (s < 10)
{
Console.Write(s+1);
}
});
b.Start();
a.Wait();
// Now here I want to stop task b
Console.WriteLine("peanuts");
Console.ReadKey();
https://msdn.microsoft.com/en-us/library/dd997396(v=vs.110).aspx – Dispersia