I need a VB.NET/WPF developer to debug an error in my code. I will supply the complete project, zipped.
The code is an adaptation of the Helix3D demo "Flights Demo" available. The project is easily found on Codeplex. The code works in most regards, but is broken in only 1. I added one function to the program, and that function I cannot make work. The structure is quite simple:
1. WPF Window project starts with window and one button.
2. Clicking the button opens the second WPF window.
3. This second window has a sphere (courtesy Helix 3D Toolkit) that turns.
4. What is working is if you click twice on the globe, a 'flight', or connection will be made from the first to the second click.
5. After a few seconds, the connection fades and is deleted. All of this works up to this point.
6. I added the ability to pull MSMQ messages (Connection() class), which have latitude & longitude.
7. I have tried countless ways to make the connection described in the MSMQ message plot on the globe/sphere the same way as it does with a mouse click.
That is it. My usual error is: "The calling thread cannot access this object because a different thread owns it."
Sounds easy, right?! I have reduced the size of the project to only include the code concerned.
What the developer will need to do to their dev environment:
1. Enable MSMQ (easy)
2. My code will create the Q if it is not on the machine (first run, it won't be).
3. You will need to create a simple 'sender' that sends instances of the 'Connection()' class into the queue. I have included a class in the project that both sends and receives these.
4. You will simply create a small class to instantiate it, and call it's:
Sub SendMessage(Connection As Connection, qPath As String)
...sub. I've already done all the hard work.
Notes:
Files attached:
- 267 is the entire project tree. The only NuGet needed are:
PM> get-package
Id Version Description/Release Notes
-- ------- -------------------------
HelixToolkit [login to view URL] Core assembly (PCL) for all Helix 3D Toolkit assemblies.
[login to view URL] [login to view URL] Provides custom controls and extensions for WPF 3D.
- 268 is the first WPF window.
- 269 is the second window as it is loaded completely.
- 270 is just the 2nd window after a few mouse clicks. Again, all this works fine. The Mouse clicks create instances of the Connections() class, so we're not talking about a completely different way of showing the connections.
- 271 shows the call that tries to add the connection created from an MSMQ message to the second window.
- 272 shows the actual error InvalidOperationException: The calling thread cannot access this object because a different thread owns it.
The task is actually quite simple for someone who knows WPF, and since I have it all set up, I figure it would take the right person 30 minutes to enable MSMQ and add code to the first window (or separate class, or your choice) to pump messages in with any lat & lon, and maybe another hour after that to verify the bug in my code, fix it, and verify it. Less time for someone familiar with how threading and bubbling events works in WPF.
I will pay $50 to the person that fixes this for me.
I will supply:
- The entire project directory zipped up (even includes the NuGet references).
- More pictures if needed to quote/troubleshoot.
- The Helix 3D Toolkit URL on CodePlex: [login to view URL]
- What else is there?
Hello. Im VB.NET programmer for 3+ years. I would like to fix your project. If you would be interested please contact me. Thank you in advance for your response.
This is a common issue in WPF apps and can be resolved by correctly utilising the dispatcher. This is easily resolved, I can point you in the right direction so you can do it yourself (no charge), or I can do this for you.
Let me know what you prefer.
Senior VB.NET and WPF Developer living in Paris.
Can i see your source code ?
If i am sure i can solve your issue, i'll let my bid otherwise i will cancel my bid.
regards.