C# 如何使用c将参数传递给ref参数?
在这段代码中,我想将一些值传递给线程内的方法。我该怎么做?请帮帮我C# 如何使用c将参数传递给ref参数?,c#,multithreading,parameters,arguments,C#,Multithreading,Parameters,Arguments,在这段代码中,我想将一些值传递给线程内的方法。我该怎么做?请帮帮我 private void onMessageReceivedThreading(ref SMSDeliver myMessage) { onreceiveThread = new Thread(()=> onMessageReceived(myMessage)); onreceiveThread.Start(); } 您可以考虑将其分配给局部变量,如: private void onMessageRece
private void onMessageReceivedThreading(ref SMSDeliver myMessage)
{
onreceiveThread = new Thread(()=> onMessageReceived(myMessage));
onreceiveThread.Start();
}
您可以考虑将其分配给局部变量,如:
private void onMessageReceivedThreading(ref SMSDeliver myMessage)
{
var mess = myMessage;
onreceiveThread = new Thread(()=> onMessageReceived(mess ));
onreceiveThread.Start();
}
值得一提的是,如果
myMessage是引用类型,您仍然引用同一类型的实例,因此可能会遇到一些并发性问题。注意这一点
myMessage是一种值类型,当您复制、创建结构的新实例时,这里可能不会发生一致性问题,但需要注意的是,如果onMessageReceived以某种方式影响混乱状态,请在线程执行完成后将更改合并到原始myMessage实例