相關:Why does this simple .NET console app have so many threads?
我將使用Visual Studio 2010中,增加了一個參考的滋生類似於第三方庫可以做一個線程的組件簡單的控制檯應用程序。
Windows服務可能有不同的調試技術,並可能有系統創建的各種附加線程運行。
簡單的控制檯
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
ClassLibrary1.Class1.StartThread();
while (true)
{
System.Threading.Thread.Sleep(1000);
System.Diagnostics.Trace.TraceInformation("test2");
}
}
}
}
在單獨的類庫組件
簡單API,加入作爲參考控制檯項目
using System.Threading.Tasks;
namespace ClassLibrary1
{
public class Class1
{
public static void StartThread()
{
var t = new Task(() => {
while(true)
{
System.Threading.Thread.Sleep(1000);
System.Diagnostics.Trace.TraceInformation("test1");
}
});
t.Start();
}
}
}
- 開始調試(F5)
- 從菜單調試,選擇'Break All'
- 從菜單調試,選擇Windows然後線程
下圖顯示:
- 爲主線,這是控制檯應用程序
- ClassLibrary1.Class1.StartThread.AnonymousMethod_0,這是引用的程序集開始線程。如果Ionic或第三方API啓動了一個線程,您可能會看到與其名稱空間相關的內容。
第三方API可能產生的線程 – PeskyGnat
的來源如何,我可以得到證實?我在哪裏可以獲得EPPlus和Ionic的來源? – bapi
我不確定你的開發環境是什麼樣子,但在VS 2010專業版中,當我'全部休息'並導航到Windows,線程時,我看到列在'位置'下的源代碼的完整列表。 – PeskyGnat