当我尝试编译时它给了我
错误 1 非静态字段、方法或属性“ConsoleApplication1.Program.print(string)”需要对象引用 ConsoleApplication1\ConsoleApplication1\Program.cs 15 47 ConsoleApplication1
所以,我标记了print
as static
它有效。但在更大的程序中,我有非静态方法。那么我该如何使用ThreadPool
用那些方法?
class Program
{
static void Main(string[] args)
{
ThreadPool.QueueUserWorkItem(o => print("hello"));
Console.ReadLine();
}
public void print(string s)
{
Console.WriteLine(s);
}
}
您只需要一个实例即可进行操作:
var myObject = new WhateverClassItIs();
ThreadPool.QueueUserWorkitem(o => myObject.SomeMethod("some input"));
请记住,如果您使用的类型实现IDisposable
(或其他一些清理机制),您不应该调用Dispose
直到您确定异步操作已完成(或异步操作本身结束时)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)