gpt4 book ai didi

c# - Task.Factory.StartNew 未调用该方法

转载 作者:太空宇宙 更新时间:2023-11-03 12:46:25 25 4
gpt4 key购买 nike

我是 C# 并发的新手,正在尝试使用两个按钮的基本应用程序,第一个按钮单击应该触发一个通过 for 循环的方法,下一个按钮单击甚至应该取消

Task t;
CancellationTokenSource tokenSource = new CancellationTokenSource();
bool cancelPressed = false;

private void button1_Click(object sender, EventArgs e)
{
var tasks = new ConcurrentBag<Task>();
var token = tokenSource.Token;
t = Task.Factory.StartNew(() => Count(token), token);

if (cancelPressed)
{
tokenSource.Cancel();
}

tasks.Add(t);
Task.WaitAll(tasks.ToArray());
}

private void Count(CancellationToken token)
{
for (int a = Int32.MinValue; a < Int32.MinValue; a++)
{
textBox1.Text = a.ToString();
if (token.IsCancellationRequested)
break;
}
}

private void button2_Click(object sender, EventArgs e)
{
cancelPressed = true;
}

但是 Count() 没有被触发。这里有什么问题?

最佳答案

你的循环条件错误导致循环内的代码没有被执行,更改a < Int32.MinValuea < Int32.MaxValue

像这样:

for (int a = Int32.MinValue; a < Int32.MaxValue; a++)

关于c# - Task.Factory.StartNew 未调用该方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com