guten Morgen!
schon eine weile beschäftige ich mich (ich versuche es:-))
mit asynchronen delegaten. Ziel ist es eine dll die in die DB schreibt gleichzeitig zu beballern. genauso schreibt sie auf die Console und das ist es was ich folgendermaßen ausprobiert habe.
#########################################
<PRE>Main
{
..........
InvokerClass Io = new InvokerClass()
Io.Run();
}
########################################
class Invokerclasss
{
........
public void Run()
{
WorkerClass[] Wo = new WorkerClass[5];
for(int i = 0; i<5;i++)
{
Wo[i] = new WorkerClass( i );
Wo[i].WriteOnConsole();
}
}
}
######################################
class WorkerClass()
{
private int counter = 0;
private delegate void ASDeleGate();
private ASDeleGate AS_DeleGate;
public WorkerClass(int i)
{
this.counter = i;
}
public void Write on Console()
{
// hier starte ich einen Timer mit einem interval von 1000 msec.
// welcher die Methode DoWork aufruft
}
private void DoWork(...........,..........)
{
AS_DeleGate = new ASDeleGate(Run);
ar = AS_DeleGate.BeginInvoke(null,null);
AS_DeleGate.EndInvoke(ar);
}
private void Run()
{
// hier lege ich mir eine object meiner dll an und lasse sie //auch die console schreiben mit dem wert von Counter
}
}
</PRE>
Die Ausgabe auf der Console ist immer sortiert
0 //ist der Wert von counter der übergeben wird
1
2
3
4
und nie asynchron zum andern platzt die ausgabe einfach so in den monitor und erscheint nichtnacheinander so wie ich mir das dachte.
kann es sein das ich hier garkeine asynchrone geschichte habe und die einzelnen Wo-Objecte nicht gleichzeitig auf der dll rumhacken??
gruß dica
schon eine weile beschäftige ich mich (ich versuche es:-))
mit asynchronen delegaten. Ziel ist es eine dll die in die DB schreibt gleichzeitig zu beballern. genauso schreibt sie auf die Console und das ist es was ich folgendermaßen ausprobiert habe.
#########################################
<PRE>Main
{
..........
InvokerClass Io = new InvokerClass()
Io.Run();
}
########################################
class Invokerclasss
{
........
public void Run()
{
WorkerClass[] Wo = new WorkerClass[5];
for(int i = 0; i<5;i++)
{
Wo[i] = new WorkerClass( i );
Wo[i].WriteOnConsole();
}
}
}
######################################
class WorkerClass()
{
private int counter = 0;
private delegate void ASDeleGate();
private ASDeleGate AS_DeleGate;
public WorkerClass(int i)
{
this.counter = i;
}
public void Write on Console()
{
// hier starte ich einen Timer mit einem interval von 1000 msec.
// welcher die Methode DoWork aufruft
}
private void DoWork(...........,..........)
{
AS_DeleGate = new ASDeleGate(Run);
ar = AS_DeleGate.BeginInvoke(null,null);
AS_DeleGate.EndInvoke(ar);
}
private void Run()
{
// hier lege ich mir eine object meiner dll an und lasse sie //auch die console schreiben mit dem wert von Counter
}
}
</PRE>
Die Ausgabe auf der Console ist immer sortiert
0 //ist der Wert von counter der übergeben wird
1
2
3
4
und nie asynchron zum andern platzt die ausgabe einfach so in den monitor und erscheint nichtnacheinander so wie ich mir das dachte.
kann es sein das ich hier garkeine asynchrone geschichte habe und die einzelnen Wo-Objecte nicht gleichzeitig auf der dll rumhacken??
gruß dica
Comment