C# 在1.1.Net中使用参数进行异步方法调用

C# 在1.1.Net中使用参数进行异步方法调用,c#,.net,.net-1.1,C#,.net,.net 1.1,我有一个需要很长时间的方法,我想异步调用该方法并继续,我不需要回调或错误 我使用了MethodInvoker和BeginInvoke,这很好,但我不知道如何传递参数 这在没有参数的情况下有效 MethodInvoker me = new MethodInvoker(my method); me.BeginInvoke(null, null); 感谢使用ThreadPool.QueueUserWorkItem。这非常适合于不需要回调的“触发并忘记”场景 您可以像这样传递参数: object pa

我有一个需要很长时间的方法,我想异步调用该方法并继续,我不需要回调或错误

我使用了
MethodInvoker
BeginInvoke
,这很好,但我不知道如何传递参数

这在没有参数的情况下有效

MethodInvoker me = new MethodInvoker(my method);
me.BeginInvoke(null, null);

感谢使用ThreadPool.QueueUserWorkItem。这非常适合于不需要回调的“触发并忘记”场景

您可以像这样传递参数:

object parameters = new object[] { 3.7, "foo", 1 };
ThreadPool.QueueUserWorkItem(new WaitCallback(Blah), parameters);

...

void Blah(object state)
{
   object[] arguments = (object[])state;
   double first = (double) arguments[0];
   string second = (string) arguments[1];
   int third = (int) arguments[2];
}

使用ThreadPool.QueueUserWorkItem。这非常适合于不需要回调的“触发并忘记”场景

您可以像这样传递参数:

object parameters = new object[] { 3.7, "foo", 1 };
ThreadPool.QueueUserWorkItem(new WaitCallback(Blah), parameters);

...

void Blah(object state)
{
   object[] arguments = (object[])state;
   double first = (double) arguments[0];
   string second = (string) arguments[1];
   int third = (int) arguments[2];
}

为什么在此实例中使用
MethodInvoker
?制作自己的委托并使用它:

public delegate MyMethodDelegate(int param1, string param2);


塔达

为什么在此实例中使用
MethodInvoker
?制作自己的委托并使用它:

public delegate MyMethodDelegate(int param1, string param2);


塔达

为什么要使用5年以上的.NET Framework版本,而与.NET Framework 2.0相比,它缺少很多功能?这是一个旧系统,正在对其进行一些更改。目前需要升级的工作太多。您可能希望向我们展示您迄今为止所做的尝试,而不仅仅是提及。添加了我所做的尝试。不知道如何传递参数为什么您使用的是5年以上的.NET Framework版本,与.NET Framework 2.0相比,它缺少很多功能?这是一个旧系统,正在对其进行一些更改。目前需要升级的工作太多。您可能希望向我们展示您迄今为止所做的尝试,而不仅仅是提及。添加了我所做的尝试。我不知道如何传递参数