Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in ConsoleControl.WPF + fix #43

Open
Buddha1996 opened this issue Dec 9, 2019 · 2 comments
Open

Error in ConsoleControl.WPF + fix #43

Buddha1996 opened this issue Dec 9, 2019 · 2 comments

Comments

@Buddha1996
Copy link

Hello, I really appreciate your work and used it in WinForms for a few months. After I switched to WPF, i had the problem that if I used StartProcess(filename, arguments) my application always crashed. So I reviewed your code last night and found the problem in the class ConsoleControl.WPF/ConsoleControl.xaml.cs.

Inside your method public void StartProcess(ProcessStartInfo processStartInfo) you have the statement processInterface.StartProcess(processStartInfo);.

I had to change this statement to:
processInterface.StartProcess(processStartInfo.FileName, processStartInfo.Arguments);

After this change ConsoleControl run's fine in my WPF project without any errors.
So if anyone is still searching for a solution - here it is.

Best regards

@dwmkerr
Copy link
Owner

dwmkerr commented Dec 11, 2019

Hi @Buddha1996 can you let me know the details of the crash you got?

I am able to use StartProcess without issues (for example, in the example application). Would be great to know why it doesn't for you!

@Buddha1996
Copy link
Author

Buddha1996 commented Dec 13, 2019

Hello @dwmkerr , I've managed to rebuild the problem (found an older build from me) and gather some information. Beside it, I got another strange and interesting point.

General Information: Targetted Framework is .Net Framework 4.7.2, your ConsoleControl.WPF nuget package is in the version 1.2.1

Excuse me, my VS2019 is in german so I will translate it..
Error thrown is:

Ein Ausnahmefehler des Typs "System.InvalidOperationException" ist in WindowsBase.dll aufgetreten.
Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da sich das Objekt im Besitz eines anderen Threads befindet.

Exception type "System.InvalidOperationException" occured in WindowsBase.dll.
The calling thread can't be opened because it's in control of another thread.

System.InvalidOperationException
HResult=0x80131509
Nachricht = Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da sich das Objekt im Besitz eines anderen Threads befindet.
Quelle = WindowsBase
Stapelüberwachung:
bei System.Windows.Threading.Dispatcher.VerifyAccess()
bei System.Windows.DependencyObject.GetValue(DependencyProperty dp)
bei ConsoleControl.WPF.ConsoleControl.get_ShowDiagnostics()
bei ConsoleControl.WPF.ConsoleControl.processInterace_OnProcessExit(Object sender, ProcessEventArgs args)
bei ConsoleControlAPI.ProcessInterface.FireProcessExitEvent(Int32 code)
bei ConsoleControlAPI.ProcessInterface.currentProcess_Exited(Object sender, EventArgs e)
bei System.Diagnostics.Process.OnExited()
bei System.Diagnostics.Process.RaiseOnExited()
bei System.Diagnostics.Process.CompletionCallback(Object context, Boolean wasSignaled)
bei System.Threading._ThreadPoolWaitOrTimerCallback.WaitOrTimerCallback_Context(Object state, Boolean timedOut)
bei System.Threading._ThreadPoolWaitOrTimerCallback.WaitOrTimerCallback_Context_f(Object state)
bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
bei System.Threading._ThreadPoolWaitOrTimerCallback.PerformWaitOrTimerCallback(Object state, Boolean timedOut)

It's getting even more curious.
I just created a simple test wpf application and implemented the console the same way as in my main application (the build where the error occured). and it worked (in the new test app) .. So i don't really get exactly what the problem causes. Maybe my project is a little bit too large and I miss something.
It's always called this way for example:
ConsoleName.StartProcess("cmd.exe", "");
Mostly I used to start self written console applications^^

As above mentioned, my project is now fine so this has no hurry. :D

But what me wonders is the following thing.
I downloaded your source binaries and if I opened your code everything was fine.. IntelliSense didn't highlight anything.

But at the moment I copied the ConsoleControl.WPF code to my usercontrol and made the changes which had to be done to get this working... it highlighted an error on the above described position in StartProcess. So.. that's why I had opended this issue..
Unbenannt

Well if I find a reason why this happens I will let you know! :)

Best wishes and have a fine weekend
Julian

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants