Good Resources

http://www.csharp-examples.net/create-asynchronous-method/

New process must be in a separate class


using namespace System::Threading;

(you can just create a new named class before the class you are currently in when working in a form etc)


	public ref class InstallerUpdaterClass
	{
		public: static void UpdaterStartSilent(void)
		{
			try
			{
				//Pause before starting
				Thread::Sleep(10000);		//mS

				String ^UpdaterFilename;
				UpdaterFilename = Path::GetDirectoryName(Application::ExecutablePath);
				UpdaterFilename += "\\" + INSTALLER_UPDATER_FILENAME;

				Process ^UpdaterProcess = Process::Start(UpdaterFilename, "/silent");
				UpdaterProcess->Close();
			}
			catch (Exception ^)
			{
			}
		}
	};

Start the process in a seperate thread to the current thread


	ThreadStart ^threadDelegate = gcnew ThreadStart(&InstallerUpdaterClass::UpdaterStartSilent);
	Thread ^newThread = gcnew Thread(threadDelegate);
	newThread->Start();
Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.

Comments

Your email address will not be published. Required fields are marked *