Yes it did.
I used Reflector to examine the code that's located in Process.Start().
When ProcessStartInfo.UseShellExecute = true (which it is by default) it
eventually does a Thread.Join() which caused the problem.
When I set it to false it used the standard win32 api to start the process
and wait which worked.

Thanks,
Mike

On Thu, Apr 24, 2008 at 10:35 AM, Peter Ritchie <
[EMAIL PROTECTED]> wrote:

> Does it make any difference if you set ProcessStartInfo.UseShellExecute to
> false?
>
> On Thu, 24 Apr 2008 10:23:23 -0500, Mike Andrews
> <[EMAIL PROTECTED]> wrote:
>
> >I'm having a particular problem that I need to resolve but can't seem to
> >find the answer.
> >
> >I have a Winform application that does various processes and spawns
> several
> >threads to do various bits of work.
> >
> >On one of the threads it spawns another thread that in turn uses the
> >Process.Start() method to start a new process (BCP in this case) to upload
> >some data to SQL Server.
> >Now... when I run this app from a console/command-line it works fine and
> no
> >process gets hung.  When it's run from the winform app it hangs on the
> >Process.Start() method and doesn't return albeit the BCP executes and
> exits
> >normally.
> >
> >I've examined the threads and the thread is in a sleep, wait, or join
> state.
> >
> >Here's a partial list of the thread call stack:
> >
> >[In a sleep, wait, or join]
> >System.dll!System.Diagnostics.ShellExecuteHelper.ShellExecuteOnSTAThread
> () +
> >0x77 bytes
> >System.dll!System.Diagnostics.Process.StartWithShellExecuteEx
> (System.Diagnostics.ProcessStartInfo
> >startInfo) + 0x2d8 bytes
> >System.dll!System.Diagnostics.Process.Start() + 0x80 bytes
> >...
> >
> >I do have a Process.WaitForExit() method call after the Process.Start()
> call
> >but it never exits the Process.Start().
> >
> >Here's my code that executes the process:
> >
> >Process p = new Process();
> >p.StartInfo.FileName = "bcp.exe";
> >p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
> >p.StartInfo.Arguments = arguments.ToString();
> >p.Start();
> >
>
> ===================================
> This list is hosted by DevelopMentor(R)  http://www.develop.com
>
> View archives and manage your subscription(s) at
> http://discuss.develop.com
>

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to