C#如何识别创建当前方法所在线程的方法?
发布时间:2020-12-15 23:37:03 所属栏目:百科 来源:网络整理
导读:我想找出创建当前方法运行的Thread的方法. 我会使用新的StackFrame(int).GetMethod().Name,但是在运行它时我在一个新的Thread中,所以这个就出来了. 我的代码示例如下: private void doSomething(object sender,EventArgs e){ try { Thread thread = new Thr
我想找出创建当前方法运行的Thread的方法.
我会使用新的StackFrame(int).GetMethod().Name,但是在运行它时我在一个新的Thread中,所以这个就出来了. 我的代码示例如下: private void doSomething(object sender,EventArgs e) { try { Thread thread = new Thread(new ParameterizedThreadStart(GenerateThreadMethod)); thread.Start(new Dictionary<String,Object>() { { "date",Convert.ToDateTime(monthCalendar.SelectionRange.Start)},{ "path",myList[myListBox.SelectedIndex][1] } }); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void GenerateThreadMethod(Object obj) { Dictionary<String,Object> data = (Dictionary<String,Object>)obj; DateTime date = (DateTime)data["date"]; String path = (String)data["path"]; //I want to find the name of doSomething() right here doMoreThings(date,path); } 解决方法
没有内置的方法来做到这一点.但是,您可以将任意对象传递给您的ParametrizedThreadStart委托,该委托可以包含您要通信的任何信息,包括调用方法名称.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |