如何将值发送到形式参数到异步任务?

问题描述 投票:0回答:1

我有一个由Task.Run调用的异步方法。当我发送字符串形式参数时

...
{
   string objectStr = "SomeData";
   ...
   Task t = Task.Run(async () => Sender(objectStr));
   Thread.Sleep(10); /// IF I REMOVE IT, VALUE WILL SAND EMPTY
   objectStr = string.Empty;
}

public async static void Sender(string info)
{
   /// BODY
}

当然,发送变量引用是错误的。我怎么能在那里发送不变的价值?

c# asynchronous task
1个回答
0
投票

要复制字符串,请传递字符串以使用new运算符:

{
   string objectStr = "SomeData";
   //...
   Task t = Task.Run(async () => Sender(new String(objectStr.ToCharArray())));
   objectStr = string.Empty;

}

这将创建String的单独副本。

© www.soinside.com 2019 - 2024. All rights reserved.