|
Theres a couple of considerations here. First you should usually get out of your data recieved event as quick as possible. Secondly, you need to marshal stuff onto the UI thread safely.
If its just doing something simple (like updating a label), then use BeginInvoke to update on the UI thread (plain Invoke will block whatever called your event handler).
Otherwise (say theres lots of processing / logging to a database) it may be worth sticking the data in a queue, and emptying the queue on another thread.
|
|
|
|
|
Thanks for the reply
Mark Churchill wrote: get out of your data recieved event as quick as possible
It is done. I am only updating a my own string buffer in the data received event of serial port. So no lags.
but..
Mark Churchill wrote: you need to marshal stuff onto the UI thread safely.
Actually after consecutively dumping the data in a buffer on every data received event I reset a timer count to detect a pause in stream to mark the end of a packet. When the packet stops I create or 'throw' a user event from the timer tick event handler method. Is there any inherent problem in this method?
from my custom event handling function I am using invoke method to update a few labels.
I have some more tasks in my datacomplete custome event like updating a data grid and loading into a buffer etc. Not huge database. I am moving into that only.
Mark Churchill wrote: then use BeginInvoke to update on the UI thread
need to study that method.
Thanks a lot..
With Regards
Roy Thomas
"..this file is known as source file probably because it is a source of frustration and anxiety!" - Chuck Sphar - In book 'C# 2005 for Dummies'.
|
|
|
|
|
Keep in mind that raising an event isn't generally asynchronous. So it doesnt really "throw", it just calls and returns like any other method (unless you use delegate.begininvoke - which grabs a thread from the pool).
Also using BeginInvoke (control/form.begininvoke) on the UI thread sticks a token for the delegate in the windows message loop. If the message loop isn't pumping for some reason (say its been blocked) then they can queue up. This probably won't happen with serial data rates, but its something to keep in mind if you are updating the UI on a push based model, or if you are doing some complex graphics.
|
|
|
|
|
Mark Churchill wrote: So it doesnt really "throw", it just calls and returns like any other method (unless you use delegate.begininvoke - which grabs a thread from the pool).
m.. new information for me..
reading articles...
will be back later.
trying to grasp concepts. I am coming from a sequential programming experience with micro controllers. Beginner on windows programming.
Thank you.
With Regards
Roy Thomas
"..this file is known as source file probably because it is a source of frustration and anxiety!" - Chuck Sphar - In book 'C# 2005 for Dummies'.
|
|
|
|
|
Trust me, the micro experience is probably good for you Having more of an understanding of what is happening at the hardware level will let you make better use of the tools. Theres too many beginning programmers that think some sort of magic is happening under the hood, and that things do exactly what the API implies. Theres no magic! .Net hides a lot of the more nasty implementation details from you, but it also makes it very easy to try and do the impossible.
|
|
|
|
|
Mark Churchill wrote: the micro experience is probably good for you
That boosts up my confidence. Thanks for the clues to drive my search
GoodNight from my part of the world! CUL
Thanks for the time!
With Regards
Roy Thomas
"..this file is known as source file probably because it is a source of frustration and anxiety!" - Chuck Sphar - In book 'C# 2005 for Dummies'.
|
|
|
|
|
Hi!
I am looking for a piece of C#-Code, that helps me to detect Pings sent to my System in a Network. I was not succussful looking on this site up to now, so can anyone give me little help?
Thank you!
Greetings
Zaphod
|
|
|
|
|
Google[^]
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my Blog
|
|
|
|
|
use Process object with system.diagnostics.processstartinfo, capture output using redirect standard output, translate and use them
hope it helps
dhaim
programming is a hobby that make some money as side effect
|
|
|
|
|
Thank you!
I will have a try!
Greetings
Zaphod
|
|
|
|
|
I get error message related to this line: 'IE iepopup_1 = IE.AttachToIE(Find.ByUrl("http://site.fi/page.htm"));'
Any ideas?
Exception WatiN.Core.Exceptions.IENotFoundException was thrown in debuggee:
Could not find an IE window matching constraint: Attribute 'href' with value 'http://site.fi/page.htm. Search expired after '30' seconds.
using System;
using System.IO;
using System.Threading;
using WatiN.Core;
using WatiN.Core.DialogHandlers;
using WatiN.Core.Exceptions;
using WatiN.Core.Interfaces;
using WatiN.Core.Logging;
namespace TestSpace
{
public class TestClass
{
[STAThread]
static void Main()
{
testing();
System.Environment.Exit(0);
}
public static void testing ()
{
IE ie = new IE("http://site.fi");
ie.GoTo("http://site.fi/");
ie.Link(Find.ByUrl("http://site.fi/link")).Click();
ie.TextField(Find.ByName("username")).TypeText("user1");
ie.TextField(Find.ByName("password")).TypeText("user1");
ie.Button(Find.BySrc("http://site.fi/button.gif")).Click();
ie.Link(Find.ByUrl("http://site.fi/link_to")).Click();
ie.Link(Find.ByUrl("http://site.fi/page.htm")).Click();
IE iepopup_1 = IE.AttachToIE(Find.ByUrl("http://site.fi/page.htm"));
LogonDialogHandler dhdlLogon = new LogonDialogHandler("popup_user","popup_user");
iepopup_1.AddDialogHandler(dhdlLogon);
iepopup_1.Close();
}
}
}
|
|
|
|
|
keijo_cyrpa wrote: WatiN
What is this, and why do you expect us to know about it ?
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
I think the general premise here is that if you don't know about something, it's your choice to learn about it, or let someone who does know about it discuss it.
I'm having a similar issue with WatiN ("Could not find an IE window matching constraint") and was hoping someone might have provided a more enlightened answer.
Don't worry, nobody lives forever.
|
|
|
|
|
keijo_cyrpa wrote: I get error message related to this line: 'IE iepopup_1 = IE.AttachToIE(Find.ByUrl("http://site.fi/page.htm"));'
Well I have no idea what this component does.
But my huess by looking at the this line and your exception message is that, for whatsoever reason this url was not reachable or invalid.
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
Smug mode on. I know what it is - it's a testing framework for web apps. Smug mode off.
|
|
|
|
|
Hai,
Is it possible to capture the information of mailing activities and IM activity from various mail services using C# programming? if so please give me the solution
|
|
|
|
|
I think you can use Hook to find out the activity .
say you can monitor a yahoo IM by injecting a dll hook to it
all you need to know is the class which creates the yahoo main window
Vikas Amin
My First Article on CP" Virtual Serial Port "[^]
modified on Thursday, July 24, 2008 5:33 PM
|
|
|
|
|
|
Well, given that you're in a C# forum, you could try posting about C# code ? Or go to the C++ forum ( Visual C++, NOT C++/CLI )
Christian Graus
No longer a Microsoft MVP, but still happy to answer your questions.
|
|
|
|
|
You are in the wrong forum.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|
|
Hi all,
I have an .exe which is working fine. Now I have to make a schedular programatically which will invoke the .exe(console app) every day at 6.00PM and performs the operation and then quit after completing the job.
Kindly help me in doing that....
Thanks
|
|
|
|
|
Why don't you use windows scheduler ?
|
|
|
|
|
|
you can make a windows service which will create a process for your exe
eg:-
STARTUPINFO si = { sizeof(STARTUPINFO) };
si.dwFlags = STARTF_USESHOWWINDOW;
PROCESS_INFORMATION pi;
CreateProcess(NULL, _T("application path"), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
Vikas Amin
My First Article on CP" Virtual Serial Port "[^]
modified on Thursday, July 24, 2008 5:33 PM
|
|
|
|
|
Quit posting the same question. Just use the Windows Task Scheduler.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
|
|
|
|