gpt4 book ai didi

c# - 将变量传递给异步方法后,在主线程中将变量设置为新实例将如何影响异步方法?

转载 作者:行者123 更新时间:2023-11-30 15:37:39 25 4
gpt4 key购买 nike

例如:

void SomeMethod()
{
MyObject o = new MyObject();
// Do stuff with o
SomeAsyncMethod(o);
o = new MyObject(); // Will this affect what was passed to SomeAsyncMethod?
}

我对“o”所做的任何操作在主线程和新线程中都会很明显。但是,如果我将 o 设置为等于主线程中的新实例,它不应该改变 SomeAsyncMethod() 中的变量仍然指向对象的原始实例的事实吗?

最佳答案

不会,不会对其他o有影响。然而

void SomeMethod()
{
MyObject o = new MyObject();
// Do stuff with o
SomeAsyncMethod(o);
o.Id = 2222; // will change objects Id property, which will
// be reflected in another thread
}

原因是在您的代码中,您正在更改局部变量 o 的值(引用),而不是对象本身

关于c# - 将变量传递给异步方法后,在主线程中将变量设置为新实例将如何影响异步方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12312000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com