免责声明(完全可编辑/可删除)
我已经完成了我的作业,但据我所知,我看不到我想知道的东西(这有点令人惊讶,所以我相信一个善良的灵魂会将我标记为复制品- 请提前接受我的道歉,哈哈)。
背景和预期问题
当我启动 Outlook 时,我正在从 CRM Dynamics 执行更新,这需要一段时间。所以,我决定把更新放在一个线程中。它按预期工作,但功能区上有一个按钮,允许用户手动调用更新。预计一个疯狂的用户,我意识到有人会在原始更新完成之前点击按钮,并且各种粪便可能会撞击气体再分配器。
建议的解决方案
为了避免这种情况,我将私有财产如下。
private bool KeepYourPantsOn { get; set; }
只要所述属性是true
(在我开始更新线程之前将其设置为正确),所有疯狂的点击都将被忽略或由冷静和信息丰富的处理
MessageBox.Show("Yes, yes... Updating still... Keep your pants on.");
但是一旦线程完成,我希望属性翻转以false
使用户能够手动更新 Outlook。
实施问题
我的小问题是我没有找到任何要调用OnFinished
的WhenDone
等方法来切换KeepYourPantsOn
. 此外,我还没有真正看到任何关于如何解决这个问题的建议解决方案(或者,更确切地说 - 我没有看到任何解决方案 - 由于对线程编程领域的无知,我可能已经看到了一个没有意识到的解决方案) .