Kilka metod w jednym wątku

0

Witajcie,
Mam takie zadanie, że muszę do nowego wątku wrzucić klasę w której wykonują się dwie metody.. Jak to zrobić? Zadanie jest na wzór Javy a w c# niestety wątki działają zupełnie inaczej. Czy da się w ogóle to wykonać czy jestem zmuszony do tego by utworzyć drugi wątekdla drugiej metody?

0

Tak to zadanie wygląda w javie:

class Shared {
public void foo ( String threadName , long time ) {
System.out.println ( threadName +
"  i s   running   foo ( )   f o r  "+time+" ms ,   c t : " +
System.currentTimeMillis( ) ) ;
long t = System.currentTimeMillis( ) ;
while ( System.currentTimeMillis() - t < time ) {
Math.atan ( System.currentTimeMillis( ) ) ;
}
}
public void bar ( String threadName , long time ) {
System.out.println ( threadName +
"  i s   running  bar ( )   f o r  "+time+" ms ,   c t : " +
System.currentTimeMillis( ) ) ;
long t = System.currentTimeMillis( ) ;
while ( System.currentTimeMillis()-t < time ) {
Math . atan ( System.currentTimeMillis( ) ) ;
}
}
}
clas s ThreadA extends Thread {
Shared shared ;
ThreadA( Shared instance ) {
this.shared = instance ;
}
public void run ( ) {
shared.foo("A",5000) ;
shared.bar("A",1000) ;
System.out.println ( "A  i s  done" ) ;
}
}
class ThreadB extends Thread {
Shared shared ;
ThreadB(Shared instance) {
this.shared = instance ;
}
public void run ( ) {
shared.foo( "B" , 1000 );
shared.bar( "B" , 2000 );
System.out.println ( "B  is  done" );
}
}
0

Kto ci te zadanie kazał wykonać? Takie zadanie można wykonać na 100 sposobów, Ktoś ci napisze a ty i tak nic z tego nie zrozumiesz,
więc po co ci to ?

1

A nie możesz do wątku przekazać metody, która po prostu uruchomi sobie dwie metody jedna po drugiej? Przecież twoje run w Javie właśnie to robią.

W stylu:

var t = new Thread(() => { 
    doFirstThing();
    doSecondThing();
});

t.Start();

1 użytkowników online, w tym zalogowanych: 0, gości: 1