如何使用c将参数传递给ref参数
本文关键字:ref 参数 参数传递 何使用 | 更新日期: 2023-09-27 18:22:16
在这段代码中,我想将一些值传递给线程内的方法。我该怎么做?请帮帮我…
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
以某种方式影响mess
的状态,请在线程执行完成后合并对原始myMessage
实例的更改。