检测C#库中主线程的运行情况

sta*_*chu 7 .net c# multithreading winforms

我正在创建一个C#dll,它将被WinForms中的其他开发人员使用.出于某些原因,我想检测,如果来自此库的方法是从Main(GUI)线程调用的,并警告开发人员他已经完成了这样的事情(即在日志文件中).有没有合理的方法从主线程中检测调用方法?请记住,我无权访问WinForm应用程序.

age*_*ped 17

在这种情况下,一个简单的解决方案是在主UI线程上创建的库程序集中声明静态控件.如果要检测是否从主线程调用库,请使用以下命令

if (MyLibraryControl.InvokeRequired)
  //do your thing here
Run Code Online (Sandbox Code Playgroud)