Я пытался метод WMI roomaroo для выключения Windows 2003 Server, но он не работал, пока я не добавил `[STAThread] '(то есть модель потоков * Single Threaded Apartment ) в объявление Main ():
[STAThread]
public static void Main(string[] args) {
Shutdown();
}
Затем я попытался отключиться от потока, и чтобы это работало, мне также пришлось установить «Состояние квартиры» потока на STA:
using System.Management;
using System.Threading;
public static class Program {
[STAThread]
public static void Main(string[] args) {
Thread t = new Thread(new ThreadStart(Program.Shutdown));
t.SetApartmentState(ApartmentState.STA);
t.Start();
...
}
public static void Shutdown() {
// roomaroo's code
}
}
Я ноб C #, поэтому я не совсем уверен в значении потоков STA с точки зрения выключения системы (даже после прочтения ссылки, которую я разместил выше). Возможно, кто-то еще может уточнить ...?