我有主窗体(PrenosForm),我试图异步运行Form2.
它没有回调委托:
this.BeginInvoke(cp, new object[] { datoteke, this.treeView1.SelectedNode.FullPath.ToString(), this, efekt }, null); //works 1.
Run Code Online (Sandbox Code Playgroud)不适用于回调委托(参数计数不匹配):
this.BeginInvoke(cp, new object[] { datoteke, this.treeView1.SelectedNode.FullPath.ToString(), this, efekt }, new AsyncCallback(callBackDelegate), null); //doesn't work parameter count mismatch 2.
Run Code Online (Sandbox Code Playgroud)如果我这样做,可以使用回调委托:
cp.BeginInvoke(datoteke, this.treeView1.SelectedNode.FullPath.ToString(), this, efekt, new AsyncCallback(callBackDelegate), null); //works 3.
Run Code Online (Sandbox Code Playgroud)我的问题是为什么一种方式有效而另一种无效?我是新来的.有人会如此善良地回答我的问题并指出我的错误吗?
private delegate void copyDelegat(List<ListViewItem> datoteke, string path, PrenosForm forma, DragDropEffects efekt);
private delegate void callBackDelegat(IAsyncResult a);
public void doCopy(List<ListViewItem> datoteke, string path, PrenosForm forma, DragDropEffects efekt)
{
new Form2(datoteke, path, forma, efekt);
}
public void callBackFunc(IAsyncResult …Run Code Online (Sandbox Code Playgroud)