You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Task使用报错:()=>{ ; expected 问题排查求助

解决.NET Task中“()=>{ ; expected”编译错误

嘿,这个编译错误的原因很明显,是你的lambda表达式语法出了小问题!看你这段代码:

System.Threading.Tasks.Task t = System.Threading.Tasks.Task.Run(() => { addAliasDomains()});

这里有个关键的语法疏漏:在语句块{}里调用addAliasDomains()方法后,没有加上分号。C#要求语句块里的每一条执行语句都必须以分号结尾,所以编译器才会提示你缺少分号。

给你两种修正后的写法:

写法一:保留语句块的正确格式

System.Threading.Tasks.Task t = System.Threading.Tasks.Task.Run(() => { addAliasDomains(); });

写法二:简化lambda表达式(更推荐)

因为你在lambda里只执行了一个方法调用,完全可以省略大括号,代码会更简洁:

System.Threading.Tasks.Task t = System.Threading.Tasks.Task.Run(() => addAliasDomains());

额外给你个小建议:在代码文件顶部加上using System.Threading.Tasks;,这样就不用每次都写完整的命名空间,代码看起来清爽很多:

using System.Threading.Tasks;

// ...

private void create_alias_button_Click(object sender , RoutedEventArgs e) {
    Task t = Task.Run(() => addAliasDomains());
    t.Wait();
}

最后提个小注意点:你在UI按钮点击事件里用t.Wait()会阻塞当前UI线程,可能导致界面卡顿。如果后续addAliasDomains()可以改成异步方法,建议用await替代Wait(),这样能避免UI阻塞的问题。

内容的提问来源于stack exchange,提问作者user9698300

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:12:54