Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


C# Compact Framework - Monitor och Wait: Går det att göra?

Postades av 2005-11-20 18:32:20 - Ted Ekeroth, i forum c# (c-sharp), Tråden har 1 Kommentarer och lästs av 850 personer

Hej,
sitter o är förtvivlad över att inga fina Monitor-klasser finns i Compact Framework (v 1.1). Testade OpenNETCF:s MonitorEx-klass men den verkar strula också som jag ska beskriva.

Mitt problem är egentligen att jag vill ha en Wait()-metod som alltid låsen en tråd tills dess att en Pulse/PulseAll har gjorts - precis som vanliga Monitorer fungerar i .NET 1.1 (Full Framework).

Varken Monitor.Wait() eller Monitor.Pulse/PulseAll() existerar i CF, utan endast Monitor.Enter() och Monitor.Exit().

Problemet är att dessa inte låser någonting. Det första som kommer hända i mitt program (ganska standard i realtidsprogrammering) är att en viss tråd kommer vilja hämta någon viss information, och kommer blockas/låsas tills information finns att hämta.

Tråden kör följande:
<code>
private void run()
{
DataUnit messageUnit = null;
byte[] byteData = null;
while(true)
{
messageUnit = dataBuffer.getSAMData();
// Do something
}
}
</code>

Metoden getSAMData() ser då ut som följer:

<code>
public DataUnit getSAMData()
{
lock(samLock)
{
while(samData.Count < 1)
{
Monitor.Wait(samLock);
}
DataUnit temp = (DataUnit) samData[0];
samData.RemoveAt(0);
return temp;
}
}
</code>

En väldigt enkel och rak Monitor helt enkelt. Problemet i CF är alltså att låsa en tråd, som Wait() ovan.

Jag har tittat lite på Semaphorer och Mutex men får inte riktigt ihop det hur man bygger sin egen Wait(). Problemen ligger också lite i att de som gör en Mutex.WaitOne() kommer direkt att få "ownership" och så går det vidare - den låses inte. Så då måste någon annan ta en WaitOne() först, INNAN denna tråden kan göra det. Men då måste den även releasa vid något tillfälle och det blir en jäkla sörja av allt.

Några tips och ideér?

MVH


Svara

Sv: C# Compact Framework - Monitor och Wait: Går det att göra?

Postades av 2005-11-21 15:07:48 - Ted Ekeroth

Jag har hittat och testat AutoResetEvent() vilket verkar fungera på samma sätt som en vanlig monitor, iaf så vitt jag uppfattat det...
Hmm, någon skillnad måste väl finnas...


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 812
27 960
271 761
508
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies