当前位置: 首页 > 编程语言 > C#

C#线程方法返回值?分享

时间:2023-04-10 15:09:07 C#

C#线程方法返回值?可能重复:从Thread.Start()的委托函数访问返回值publicstringsayHello(stringname){return"Hello,"+name;我如何在Thread中使用这个方法?ThreadStart方法只接受void方法。我在等你的帮助。谢谢。ThreadStart不仅期望void方法,还期望它们不带参数!您可以将其包装在lambda、匿名委托或命名静态函数中。这是一种方法:stringres=null;线程newThread=newThread(()=>{res=sayHello("world!");});新线程.开始();newThread.Join(1000);安慰。写行(res);这是另一种语法:ThreadnewThread=newThread(delegate(){sayHello("world!");});新线程.开始();第三种语法(使用命名函数)最无聊://定义一个“包装器”函数staticvoidWrapSayHello(){sayHello("world!);}//从其他地方调用它ThreadnewThread=newThread(WrapSayHello);newThread.Start();你的任务应该用于这个目的。如果可以使用任何线程方法,试试BackgroundWorker:以上是C#学习教程:C#线程方法返回值?如果分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注——BackgroundWorkerbw=newBackgroundWorker();publicForm1(){InitializeComponent();bw.DoWork+=bw_DoWork;bw.RunWorkerCompleted+=bw_RunWorkerCompleted;bw.RunWorkerAsync("我的名字");}voidbw_RunWorkerCompleted(objectsender,RunWorkerCompletedEventArgse){Text=(string)e.Result;}voidbw_DoWork(objectsender,DoWorkEventArgse){stringname=(string)e.Argument;e.Result="你好,"+姓名;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: