C# 私有变量在异步方法中具有不同的值
我有一个两个私有变量,它在表单加载时填充C# 私有变量在异步方法中具有不同的值,c#,winforms,async-await,C#,Winforms,Async Await,我有一个两个私有变量,它在表单加载时填充 private int _days = 0; private int _calc = 0; public override void OnLoad(obejct sender, EventArgs e) { ... _days = 2; _calc = 500; ... } 然后,这些私有变量将与表单的async方法一起使用。此方法是此窗体基类方法的重写方法 public override async void Pop
private int _days = 0;
private int _calc = 0;
public override void OnLoad(obejct sender, EventArgs e)
{
...
_days = 2;
_calc = 500;
...
}
然后,这些私有变量将与表单的async
方法一起使用。此方法是此窗体基类方法的重写方法
public override async void Populate(object sender, EventArgs e)
{
...
int b = _days; // _days = 0 here, but should be 2
int x = _calc; // _calc is 500
...
}
调试和查看私有变量时\u days
。此处设置为0
,但查看另一个变量\u calc
是所需的500
为什么会这样?如果你能提供一个解决方案,它将允许其他人重复你的问题,并为你提供更好的解决方案的机会。你能添加
MessageBox.Show(“OnLoad----\u days=“+\u days+”\u calc=“+\u calc”)在OnLoad
和相同的消息中分配这两个变量后,是否使用Populate in first part
内部的Populate
函数在使用它们之前进行编码?