查看別人的來源程式時,一些錯誤的解決提示:
1、win7 64位系統: 運行失敗的話,將VS功能表列下面那欄裡有個"Any CPU",進去new一個x86的試試
2、無法載入dll檔案: 方法一.在方案總管裡將這個dll添加到項目的引用裡;
方法二.如果添加引用失敗,可以嘗試在開始->運行->cmd裡 先進入"C:\Windows\System32\"檔案夾,然後運行"regsvr32.exe d:\xxx.dll"命令,註冊這個dll檔案,再嘗試方法一;
方法三.註冊也失敗的話,可嘗試直接將dll檔案複製到"項目目錄\bin\Debug\"下,如果之前CPU設定了x86的話那就是"項目目錄\bin\x86\Debug\"下。
類比滑鼠點擊的方法: Button1_Click(this, new EventArgs());
添加線程池: ThreadPool.QueueUserWorkItem(new WaitCallback((stateInfo) =>
{
doSomething();
}));
struct 類型裡的欄位預設值: int類型預設值為0、string類型預設值為null
[STAThread]的含義
[STAThread]
STAThread:Single Thread Apartment Thread (單一線程單元線程)
[] 是用來表示Attributes;
[STAThread]
是一種執行緒模式,用在程式的入口方法上(在C#和VB.NET裡是Main()方法),來指定當前線程的ApartmentState 是STA。用在其他方法上不產生影響。在aspx頁面上可以使用AspCompat = "true" 來達到同樣的效果。這個屬性只在 Com Interop 有用,如果全部是 managed code 則無用。簡單的說法:[STAThread]指示應用程式的預設執行緒模式是單一執行緒 Apartment (STA)。啟動執行緒模式可設定為單一執行緒 Apartment或多執行緒 Apartment。如果未對其進行設定,則該線程不被初始化。也就是說如果你用的.NET Framework,並且沒有使用COM Interop,一般不需要這個Attribute。其它的還有MTA(多線程套間)、Free Thread(自由線程)。
[STAThread] attribute指示應用程式的 COM 執行緒模式是單一執行緒 Apartment。
而於此對應的多執行緒 Apartment則是 [MTAThread](多執行緒 Apartment線程)
COM 執行緒模式只適用於使用 COM interop 的應用程式。如果將此屬性應用到不使用 COM interop 的應用程式,將沒有任何效果。
COM 執行緒模式可設定為單一執行緒 Apartment或多執行緒 Apartment。如果應用程式線程實際調用了 COM 組件,則僅為 COM interop 初始化該線程。如果沒有使用 COM interop,則不初始化該線程。