Click here to Skip to main content
15,896,912 members
Home / Discussions / C#
   

C#

 
AnswerRe: BeginReceive: How do I get out of the thread when reachig callback function? Pin
Simon P Stevens24-Oct-08 0:20
Simon P Stevens24-Oct-08 0:20 
GeneralRe: BeginReceive: How do I get out of the thread when reachig callback function? Pin
Kurt24-Oct-08 0:35
Kurt24-Oct-08 0:35 
GeneralRe: BeginReceive: How do I get out of the thread when reachig callback function? Pin
Simon P Stevens24-Oct-08 0:42
Simon P Stevens24-Oct-08 0:42 
GeneralWhy don't we need invoke events of controls? Pin
Kurt24-Oct-08 1:41
Kurt24-Oct-08 1:41 
GeneralRe: Why don't we need invoke events of controls? Pin
Simon P Stevens24-Oct-08 1:53
Simon P Stevens24-Oct-08 1:53 
AnswerRe: BeginReceive: How do I get out of the thread when reachig callback function? Pin
Gideon Engelberth24-Oct-08 3:04
Gideon Engelberth24-Oct-08 3:04 
AnswerRe: BeginReceive: How do I get out of the thread when reachig callback function? [modified] Pin
Alan N24-Oct-08 8:13
Alan N24-Oct-08 8:13 
AnswerSolution incl. example :-) Pin
Kurt27-Oct-08 0:50
Kurt27-Oct-08 0:50 
I searched for ISynchronizeInvoke and found a complete solution for thread safe events instead.
This solution is from http://www.gmbsg.com/works/index.php?title=Events_threadsicher_aufrufen_in_.NET[^]

public static class ThreadSafe
{
    public static void Invoke(Delegate method, object[] args)
    {
        if (method != null)
        {
            foreach (Delegate handler in method.GetInvocationList())
            {
                if (handler.Target is Control)
                {
                    Control target = handler.Target as Control;
                    if (target.IsHandleCreated)
                    {
                        target.BeginInvoke(handler, args);
                    }
                }
                else if (handler.Target is ISynchronizeInvoke)
                {
                    ISynchronizeInvoke target = handler.Target as ISynchronizeInvoke;
                    target.BeginInvoke(handler, args);
                }
                else
                {
                    handler.DynamicInvoke(args);
                }
            }
        }
    }
}


// example how to use it with events

public void OnDataReceived(object sender, DataReveivedEventArgs e)
{
    if (DataReceived != null) { ThreadSafe.Invoke(this.DataReceived, new object[] { this, e });
}


It works great! No invoke outside my class is needed anymore! Smile | :)
QuestionOpen-source C# shopping cart Pin
Andrey Mazoulnitsyn23-Oct-08 22:49
Andrey Mazoulnitsyn23-Oct-08 22:49 
QuestionAccess different variable names on the fly Pin
J-Cod3r23-Oct-08 20:55
J-Cod3r23-Oct-08 20:55 
AnswerRe: Access different variable names on the fly Pin
Eduard Keilholz23-Oct-08 21:44
Eduard Keilholz23-Oct-08 21:44 
AnswerRe: Access different variable names on the fly Pin
N a v a n e e t h23-Oct-08 22:42
N a v a n e e t h23-Oct-08 22:42 
AnswerRe: Access different variable names on the fly Pin
PIEBALDconsult24-Oct-08 4:32
mvePIEBALDconsult24-Oct-08 4:32 
QuestionAuto Generate Customer ID Pin
nt_virus23-Oct-08 18:12
nt_virus23-Oct-08 18:12 
AnswerRe: Auto Generate Customer ID Pin
AhsanS23-Oct-08 20:16
AhsanS23-Oct-08 20:16 
AnswerRe: Auto Generate Customer ID Pin
N a v a n e e t h23-Oct-08 20:42
N a v a n e e t h23-Oct-08 20:42 
AnswerRe: Auto Generate Customer ID Pin
V.23-Oct-08 22:24
professionalV.23-Oct-08 22:24 
GeneralRe: Auto Generate Customer ID Pin
sumit703423-Oct-08 22:43
sumit703423-Oct-08 22:43 
GeneralRe: Auto Generate Customer ID Pin
N a v a n e e t h23-Oct-08 22:45
N a v a n e e t h23-Oct-08 22:45 
GeneralRe: Auto Generate Customer ID Pin
sumit703423-Oct-08 22:54
sumit703423-Oct-08 22:54 
GeneralRe: Auto Generate Customer ID PinPopular
V.23-Oct-08 23:10
professionalV.23-Oct-08 23:10 
QuestionBrowser Wrangler Idea - Direction Needed Pin
iceman347923-Oct-08 17:53
iceman347923-Oct-08 17:53 
QuestionDataGrid .. DataSet .. Datatable Pin
chicago7623-Oct-08 11:15
chicago7623-Oct-08 11:15 
AnswerRe: DataGrid .. DataSet .. Datatable Pin
PIEBALDconsult23-Oct-08 12:42
mvePIEBALDconsult23-Oct-08 12:42 
AnswerRe: DataGrid .. DataSet .. Datatable [modified] Pin
nelsonpaixao23-Oct-08 14:42
nelsonpaixao23-Oct-08 14:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.