C# 在用户';s的点击被处理了吗?
我处理用户单击按钮的情况,如:C# 在用户';s的点击被处理了吗?,c#,.net,multithreading,winforms,asynchronous,C#,.net,Multithreading,Winforms,Asynchronous,我处理用户单击按钮的情况,如: private void btnScanDirectory_Click(object sender, EventArgs e) { // some code } btnScanDirectory\u Click()完成工作后会触发哪些事件 我这样问的原因是,在btnScanDirectory\u Click()中,我创建了一个新的Thread(),在其中我“激发并忘记”树。BeginInvoke()方法更新TreeView 因此,即使工作线程
private void btnScanDirectory_Click(object sender, EventArgs e)
{
// some code
}
btnScanDirectory\u Click()完成工作后会触发哪些事件
我这样问的原因是,在btnScanDirectory\u Click()
中,我创建了一个新的Thread()
,在其中我“激发并忘记”树。BeginInvoke()
方法更新TreeView
因此,即使工作线程关闭,主线程仍然在处理那些多个BeginInvoke()
调用,并且当我访问类似树的
tree.ExpandAll();
在相同的btnScanDirectory\u Click()
-它没有效果
我找不到“在调用所有EndInvoke()方法时在主线程中等待”的方法,因此我想尝试tree.ExpandAll()
在btnScanDirectory\u Click()
完成后触发的情况。请查看此页面。它有以下细节,我想这就是你想要的:
当光标位于控件上时按下鼠标按钮通常会从该控件引发以下一系列事件:
鼠标下移事件
单击事件
鼠标点击事件
鼠标移动事件
当然,它不会有任何效果,树在单击处理程序完成后开始填充。只能在线程完成后调用ExpandAll()。与BackgroundWorker一起做的事情很少。@HansPassant我只需要使用Thread()
class。。。你能帮我在没有后台的情况下怎么做吗?这是什么荒谬的限制?使用适当的工具完成工作。@HansPassant谢谢你对我的问题投了负号。做得好。