NamedPipeServerStream::BeginWaitForConnection(AsyncCallback^ callback,Object^ state)
-
static IAsyncResult IAR(IAsyncResult ^ar) { ... static IAsyncResult ^AR = ar; return AR; }
AsyncCallback ^ AC(IAsyncResult ^ar) { ... }
[Thread]
... BeginWaitForConnection(AC(IAR(void))); ...
-
Also entweder habe ich es jetzt verstanden oder nicht. Ist das so, dass wenn BeginWaitForConnection(...) ausgeführt wird, es auf ein Connect wartet und wenn dieser erfolgt ist, gibt BeginWaitForConnection(...) ein IAsyncResult zurück.
Möchte man BeginWaitForConnection vorzeitig beenden, muss man dies über AsyncCallback mit dem BeginWaitForConnection aufgerufen wurde tun.
-
Du musst nur eine Callback übergeben...
Begin...(new AsyncCallback(this, &MyCallback); void MyCallback(IAsyncResult result) { // ... }
-
pipeStream->BeginWaitForConnection(gcnew AsyncCallback(&Result),this);
error C2673: 'NamedPipeServerStream_WaitForConnectionThreadProcess': Globale Funktionen haben keinen this-Zeiger
Der zweite Parameter wo this steht ist soll ein System::Object sein. Soll das so eine art Identifikationskarte sein? Also kann man da auch einfach einen String rein tun? Oder wozu ist das gut?
-
Wenn Du einen statische Methode hast, dann lass halt "this" weg...
-
Jochen Kalmbach schrieb:
Wenn Du einen statische Methode hast, dann lass halt "this" weg...
Die ist nicht static. Die Funktion ist halt global von einer .cpp aus und nicht in einer Klasse.
Was würde den this bewirken? Dass alle Member von der Klasse übergeben werden?
-
LiGERWooD schrieb:
Jochen Kalmbach schrieb:
Wenn Du einen statische Methode hast, dann lass halt "this" weg...
Die ist nicht static. Die Funktion ist halt global von einer .cpp aus und nicht in einer Klasse.
Was würde den this bewirken? Dass alle Member von der Klasse übergeben werden?
static oder global.
Zu this:http://msdn.microsoft.com/en-us/library/y0dddwwd.aspx
-
So weit so gut. Bei ausführung von BeginWaitForConnection(...) wird eine Funktion des Datentyp IAsyncResult ausgeführt, genauso gut würde auch eine void Funktion ausgelöst. Wo sagt mir denn nun IAsyncResult das ein Connect von BeginWaitForConnection(...) erfolgt ist, auser das mir AsyncState ein voher übergebenes Unterscheidungsobjekt gibt, nütz mir das so bis jetzt nichts. Oder übergibt IAsyncResult einen Zeiger von der instanzierten NamedPipeServerStream?
-
http://msdn.microsoft.com/de-de/library/system.io.pipes.namedpipeserverstream.aspx
http://msdn.microsoft.com/de-de/library/system.io.pipes.namedpipeserverstream.beginwaitforconnection.aspx
-
theta schrieb:
http://msdn.microsoft.com/de-de/library/system.io.pipes.namedpipeserverstream.aspx
http://msdn.microsoft.com/de-de/library/system.io.pipes.namedpipeserverstream.beginwaitforconnection.aspxDanke theta aber diese msdn Beispiele kenne ich schon und da steht nirgends wo ich ein Event verknüpfen kann bei eintreten eines Connectes.
Auser IsConnected. Aber dann müste ich ja exta dafür ne schleife machen, die wiederum nen Thread braucht.
-
Das ist komisch:
Parameter
callback
Typ: System..::.AsyncCallback
Die Methode, die aufgerufen wird, wenn ein Client eine Verbindung mit dem NamedPipeServerStream-Objekt herstellt.Es wird auf der stelle ausgeführt, gleich nach dem BeginWaitForConnection(...) ohne das überhaubt ein Connect ausgeführt wurde.
Das ist doch sinn der Sache oder, dass es erst passiert wenn ein Connect erfolgt ist?
Oder habe ich hier was falsch verstanden und es geht erst hinter WaitOne() weiter wenn ein Connect erfolgt ist?
-
Jetzt sehen wol die Meister wohl zum ersten mal, dass die MSDN unzureichend Informationen liefert für Methoden aus der .Net Bibliothek die nichts mit den Objekten aus der Toolbox zu tun haben.
-
Quatsch, aber ich habe aufgegeben Dir zu antworten, weils einfach irgendwie sinnlos ist.
-
theta schrieb:
Quatsch, aber ich habe aufgegeben Dir zu antworten, weils einfach irgendwie sinnlos ist.
Du weist die Antwort selber nicht.
Brobier es doch selbst aus. Die Methode wird auf der stelle mit der ausführung von BeginWaitForConnection aufgerufen.
-
LiGERWooD schrieb:
theta schrieb:
Quatsch, aber ich habe aufgegeben Dir zu antworten, weils einfach irgendwie sinnlos ist.
Du weist die Antwort selber nicht.
Doch.
LiGERWooD schrieb:
Die Methode wird auf der stelle mit der ausführung von BeginWaitForConnection aufgerufen.
Nö. Und wenn doch, ev. weil schon Connected ist.
-
theta schrieb:
LiGERWooD schrieb:
theta schrieb:
Quatsch, aber ich habe aufgegeben Dir zu antworten, weils einfach irgendwie sinnlos ist.
Du weist die Antwort selber nicht.
Doch.
LiGERWooD schrieb:
Die Methode wird auf der stelle mit der ausführung von BeginWaitForConnection aufgerufen.
Nö. Und wenn doch, ev. weil schon Connected ist.
Uaaaarrrggg
schon die ganze zeit reden wir, wegen diesem fehler aneinander vorbei.
Es ist nicht Connected! Kann garnicht sein ich habe gar keinen Clienten los gelassen! Oder muss man da jetzt auch noch vor dem ersten mal BeginWaitForConnection(...), EndWaitForConnection(...) ausführen?
Er ruft die Methode auf, was ich da drann sehe dass er die aufgaben in der Methode sofort vornimmt. Obwohl der NamedPipeServerStream nicht connected ist!
-
Da waer ich auch ausgetickt