static void Main(string[] args) { if (args.Length == 0) { Help(); Environment.Exit(0); } if ((args.Length % 2) != 0) { Console.WriteLine("Invalid number of arguments."); Help(); Environment.Exit(-1); } int numberOfPresentations = args.Length / 2; Thread[] conversionThreads = new Thread[numberOfPresentations]; // initialize threads for (int presentationIndex = 0; presentationIndex < numberOfPresentations; ++presentationIndex) { String pptName = args[presentationIndex * 2]; String swfName = args[presentationIndex * 2 + 1]; Console.WriteLine("Convert \"" + pptName + "\" to \"" + swfName + "\""); iSpringConverter converter = new iSpringConverter(pptName, swfName); Thread thread = new Thread(converter.StartConversion); ApartmentState astate = thread.GetApartmentState(); thread.SetApartmentState(ApartmentState.STA); conversionThreads[presentationIndex] = thread; } // Start conversion for (int presentationIndex = 0; presentationIndex < numberOfPresentations; ++presentationIndex) { conversionThreads[presentationIndex].Start(); } // wait for threads for (int presentationIndex = 0; presentationIndex < numberOfPresentations; ++presentationIndex) { conversionThreads[presentationIndex].Join(); } }
protected static ApartmentState GetApartmentState(Thread thread) { return thread.GetApartmentState(); }
/// <summary> /// Returns an ApartmentState value indicating the apartment state. /// </summary> /// <returns>One of the ApartmentState values indicating the apartment state of the managed thread. The default is ApartmentState.Unknown.</returns> public ApartmentState GetApartmentState() { return(_Thread.GetApartmentState()); }
private static ApartmentState GetApartmentState(Thread thread) { return thread.GetApartmentState(); }