CannibalSmith ([info]cannibalsmith) rakstīja [info]koderi kopienā,
@ 2009-03-16 13:47:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
.net delegāti
Kāpēc visi raksta tā
class HaHa
{
	delegate void GlugGlug();
public:
	void Zomg()
	{
		dispatcher->Invoke(DispatcherPriority::Normal, gcnew GlugGlug(this, &HaHa::Pooper));
		dispatcher->Invoke(DispatcherPriority::Normal, gcnew GlugGlug(this, &HaHa::Pirate));
	}
	void Pooper() { }
	void Pirate() { }
}
nevis šitā
class HaHa
{
	delegate void GlugGlug();
	GlugGlug^ glug;
	GlugGlug^ zomg;
public:
	HaHa()
	{
		glug = gcnew GlugGlug(this, &HaHa::Pooper);
		zomg = gcnew GlugGlug(this, &HaHa::Pirate);
	}
	void Zomg()
	{
		dispatcher->Invoke(DispatcherPriority::Normal, glug);
		dispatcher->Invoke(DispatcherPriority::Normal, zomg);
	}
	void Pooper() { }
	void Pirate() { }
}
?


(Ierakstīt jaunu komentāru)


[info]bubu
2009-03-16 14:54 (saite)
Un kāpēc gan tavuprāt tā nevajag raksīt?
Imho otrā kodā lieki tiks izniekota atmiņa, ja Zomg nekad neizsauksies. Taču pirmajā kodā atmiņa izdalīsies tik tad, ja taiešām Zomg izsauksies. Un atmiņas izdalīšana .NET'ā ir ļoti ātra.

(Atbildēt uz šo)


Neesi iežurnalējies. Iežurnalēties?