webForumDet fria alternativet

Fördröjning av tråd!

.NET

4 svar · 263 visningar · startad av Mc Fetto

Medlem sedan nov. 20022 355 inlägg
Frågan#1

Jag använder en tråd för att spela upp ljud, men första gången tråden används i applikationen så blir det en fördröjning på 1-2 seckunder. Därefter så spelas ljuden upp då de ska!

Vet inte riktigt vad det kan vara som gör detta!

		//deklaration
		[DllImport("winmm.dll")]
		public static extern long PlaySound(String lpszName, long hModule, long dwFlags);
		private Thread hitThread = null;

		
		//funktioner för att spela upp ljudet i tråden
		public void PlaySoundInThread(string wavefile)
		{
				m_strCurrentSoundFile = wavefile;
				hitThread = new Thread(new ThreadStart(PlayASound));
				hitThread.Start();
		}
		public void PlayASound()
		{
				if (m_strCurrentSoundFile.Length > 0)
				{
					PlaySound(Application.StartupPath + "\\" + m_strCurrentSoundFile, 0, 0);
				}
				m_strCurrentSoundFile = "";
				hitThread.Abort();
		}

		
		//kallar på funktionen med filnamn
		PlaySoundInThread("ball.wav");

Någon som har en idé?

Medlem sedan juni 20022 599 inlägg
#2

Det här är väl lite .NET i ett nötskal? Allt tar tid första gången man gör det eftersom metoderna kompileras i takt med att de används (det märks särskilt om man har en lite äldre maskin).

Tips: Testa att kompilera Release. Testa att förkompilera exe:n med ngen.exe.

PS. Du behöver inte tråda PlaySound (om du inte vill) den har stöd för att spela upp asynkront. DS.

Medlem sedan nov. 20022 355 inlägg
#3

Hm, om jag inte trådar PlaySound() så blir det ett mini uppehåll i applikationen (ett litet space invader spel). Så det måste nog göras med trådar tror jag.

Blev inget bättre med ngen.exe heller :( ! Vet ifs inte hur man anvädner den riktigt... jag körde endast: ngen filnamn

Medlem sedan juni 20022 599 inlägg
#4

Tyvärr ingen förklaring. Jag pastade in din kod i ett formulär och märker ingen fördröjning alls, ens i debug (2,4GHz/512MB).

Medlem sedan nov. 20022 355 inlägg
#5

oki, min e på 550 MHz/512Mb
Tack för tipset ivf!

263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)