Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Vlastnosti objektu z Form1 do triedy

Aktivity
Avatar
Tayson
Člen
Avatar
Tayson:29.1.2014 0:01

Zdravim

Mam nasledujuci problem. Mam vytvoreny Form1, triedu A, triedu B. V triede A mam vytvorenie vlakna a vykonavanie funkcie v tom vlakne. Vo Form1 som si spravil inštanciu tiredy A a vlakno spustam a pozastavujem. Lenze ak si vytvorim aj instanciu triedy A v triede B tak nemozem to iste vlakno ak je spustene cez Form1 zastavit. Ako mam vytvorit druhy objekt v triede B aby poznalo spustene vlakno v objekte vo Forme1.

Dakujem

 
Odpovědět
29.1.2014 0:01
Avatar
Jakub Lásko[Saarix]:29.1.2014 8:16

Tak ve třídě B manipuluj s vláknem, které předáš ze třídy A. A budeš ho moct zastavit i ze třídy B.

Nahoru Odpovědět
29.1.2014 8:16
Časem je vše možné.
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Tayson
MrPabloz:29.1.2014 8:56

Jak by ti tady někdo řekl, DI, předej si referenci z Form1 do třídy B při vytvoření, tím pak budeš moci manipulovat v třídě B s daným vláknem

Nahoru Odpovědět
29.1.2014 8:56
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Tayson
Člen
Avatar
Odpovídá na MrPabloz
Tayson:29.1.2014 13:07

Vies mi nejako poradit ako to spravit ?

 
Nahoru Odpovědět
29.1.2014 13:07
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Tayson
MrPabloz:29.1.2014 13:20

Omlouvám se, ale v C# nedělám, neznám tedy přesnou syntaxi, ale napsal sem ti to tu aspon obecně, tak doufám že to pochopíš :) a doufám že sem to zprávně sepsal :D

class A{
        private Thread a;//Objekt typu Vlákno
        A(){    a=new Thread();};
        public Thread getTh(){return a;};
}

class B{
        private Thread b;
        B(Thread x){b=x;};//předání vlákna v konstruktoru
        public void stopTh(){b.stop();}
}

class Form1
{
        A alfa=new A();
        B beta=new B(alfa.getTh());
}
Nahoru Odpovědět
29.1.2014 13:20
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na MrPabloz
Jan Vargovský:29.1.2014 13:25

To je přesně způsob jak se to nemá používat.

 
Nahoru Odpovědět
29.1.2014 13:25
Avatar
MrPabloz
Člen
Avatar
Odpovídá na Jan Vargovský
MrPabloz:29.1.2014 13:29

Nějak nechápu proč, tedy důvod?

Nahoru Odpovědět
29.1.2014 13:29
Harmonie těla a duše, to je to, oč se snažím! :)
Avatar
Tayson
Člen
Avatar
Odpovídá na Jan Vargovský
Tayson:30.1.2014 15:42

Vies mi poradit nejaky sposob ako sa to ma pouzivat ?

 
Nahoru Odpovědět
30.1.2014 15:42
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Tayson
Jan Vargovský:30.1.2014 15:58

Nevím co řešíš.

MrPabloz nevím proč vytvářet vytvářet objekt a, když vytvořím vlákno a přidám přímo to a né že to mám takhle zbytečně někde ještě schované.

 
Nahoru Odpovědět
30.1.2014 15:58
Avatar
Tayson
Člen
Avatar
Odpovídá na Jan Vargovský
Tayson:30.1.2014 16:20

Nerozumiem celkom tvojej odpovedi

 
Nahoru Odpovědět
30.1.2014 16:20
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Tayson
Jan Vargovský:30.1.2014 16:27

Jeto jako kdyby udělal třídu:

class MojeMatematika
{
private Math math = new Math();

public double VypocitejCosinus(double x)
{
return math.Cos(x);
}
}

Co by to mělo za smysl?

Ten kód nefunguje, protože math je statická třída, ale je to to samé jako tvůj. Btw, vadilo mi už jen to, že děláš vlastnosti po Jave. Tady jsi v .NETu.

 
Nahoru Odpovědět
30.1.2014 16:27
Avatar
Tayson
Člen
Avatar
Odpovídá na Jan Vargovský
Tayson:30.1.2014 16:54

Ale my dvaja sa nerozumieme ... ide o to ze ja ked si vytvorim v triede A funkciu ktora mi bude pocitat od jedna do milion v osobitnom vlakne a vo forme ak si vytvorim instanciu na tuto triedu tak si pocatie mozem pozastavit a znova spustit ... ale ak chcem to iste vlakno pozastavit aj spustit v triede B tak potrebujem si vytvoreny objekt v triede B previazat s objektom vo forme aby som to iste vlakno dokazal pozastavit aj spustit

 
Nahoru Odpovědět
30.1.2014 16:54
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Tayson
Jan Vargovský:30.1.2014 17:09

A proč bys nemohl spravovat to vlákno přímo? Proč spracovávat instanci, která má funkcionalitu jako to vlákno? Tvoje třída je užitečná jako ta moje matematická třída. Využíváš už existující objekt a nic víc. Akorát ty tam dáváš nesmyslné Javovské get metody a navíc je to celkově divné.

To máš prostě jako kdybys udělal třídu MujForm a ta by měla jen vlastnost na nějakou instanci Formu, proč? Není lepší si přímo předávat instanci Formu než předávat MujForm a z toho až tahat Form ?

 
Nahoru Odpovědět
30.1.2014 17:09
Avatar
Tayson
Člen
Avatar
Odpovídá na Jan Vargovský
Tayson:30.1.2014 17:21

A ako si mam tu inštanciu predávať ?

 
Nahoru Odpovědět
30.1.2014 17:21
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na Tayson
Jan Vargovský:30.1.2014 17:23

Úplně stejně jako předáváš instanci typu A tak můžeš předat instanci typu Thread.

 
Nahoru Odpovědět
30.1.2014 17:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 15 zpráv z 15.