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.