在c#中的线程中运行带参数的方法

Boa*_*rdy 17 c#

我目前正在C#中开展一个项目.我有一个名为updateProgress()的方法,它有两个int参数(count和totalRows).

如果我通过说updateProgress(count,totalRows)调用该方法,这可以正常工作,但我想在新线程中运行此方法.

我怎么能这样做,我已经在网上看了一下,一切看起来都太复杂了,我想做什么.

感谢您对此的帮助

cdh*_*wie 31

像这样的东西:

new Thread(delegate () {
    updateProgress(count, totalRows);
}).Start();
Run Code Online (Sandbox Code Playgroud)


Oli*_*ppi 7

请注意,线程实际上是一个非常复杂的主题,因此如果您无法理解.NET Framework中可用的异步API,我怀疑您是否应该首先开始使用线程.

无论如何,你有几个选择:

  • 通过自己的线程(如cdhowie指出)分离线程,这是相当沮丧的.

  • 如果您在.NET 4上运行,请使用TPL(任务并行库).这是一个很好的介绍. TaskFactory.StartNew(() => updateProgress(count, totalRows));

  • 如果您运行的是旧版本的.NET,请使用ThreadPool. ThreadPool.QueueUserWorkItem(s => updateProgress(count, totalRows));

当然还有其他方法,但这是最重要的方式.

最
诚挚的问候,Oliver Hanappi