在这段代码中,我想将一些值传递给线程中的方法。我怎样才能做到这一点?请帮帮我..
private void onMessageReceivedThreading(ref SMSDeliver myMessage)
{
onreceiveThread = new Thread(()=> onMessageReceived(myMessage));
onreceiveThread.Start();
}
答案 0 :(得分:0)
您可以考虑将其分配给局部变量,例如:
private void onMessageReceivedThreading(ref SMSDeliver myMessage)
{
var mess = myMessage;
onreceiveThread = new Thread(()=> onMessageReceived(mess ));
onreceiveThread.Start();
}
值得一提的是(从帖子中看不清楚)是否
myMessage
是一种引用类型,您仍然将引用到类型的同一实例,因此可能会遇到一些问题。注意这一点。
myMessage
是一个值类型,此处不会出现任何可疑问题(当您复制,创建结构的新实例时),但是您需要注意如果{{1}以某种方式影响onMessageReceived
的状态,在线程执行完成后将更改合并到原始mess
实例,。