Hallo,
Ich muss zugeben ich mag einige Programmiersprachen. C# gehört allerdings (bisher) nicht dazu.
Bei einem ein Schulprojekt habe ich folgendes Problem:
Ein "Server" hat eine Liste mit Clients.
Er wirft ein remoting event zu jedem der Clients (port 80).
Das Remotingevent ruft irgendeine Funktion am Client auf (das ist der Punkt, bei dem ich nicht weiß wie er funktionieren soll) und schreibt einen Eintrag (den das RemotingEvent mitschickt) in das GUI (ine eine ListBox).
Wichtige Probleme:
Es ist "verboten" mit einem Thread (außer dem Mainthread) auf das GUI zu schreiben
Visual Studio 2005 final muss verwendet werden (die Sicherheitsrichtlinien scheinen von Version zu Version anders zu sein).
Ich wäre froh, könnte mir hier jemand helfen. Knabbere schon ganz schön lang an dem Problem.
Seite 1 von 1
C# Remoting Events Problem
Anzeige
#2
geschrieben 27. März 2006 - 22:08
Zitat
Es ist "verboten" mit einem Thread (außer dem Mainthread) auf das GUI zu schreiben
Dann lass dem Mainthread eine Nachricht zukommen.
Zitat
(die Sicherheitsrichtlinien scheinen von Version zu Version anders zu sein)
Welche Sicherheitsrichtlinien? Den Quatsch, den sich Microsoft da einbildet, oder was?
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#3
geschrieben 27. März 2006 - 22:20
Zitat (Rika: 27.03.2006, 23:08)
Dann lass dem Mainthread eine Nachricht zukommen.
Ich würde gerne wissen wie genau das funktioniert und wie das praktisch (vll ein ganz kurzes Codebsp) aussieht.
@Sicherheitsrichtlinien: Genau das was MS sich vorstellt ist in diesem Fall ziemlich störend.
Wie man das Problem vermeiden kann weiß ich aber nicht.
#4
geschrieben 28. März 2006 - 00:24
Zitat
Ich würde gerne wissen wie genau das funktioniert und wie das praktisch (vll ein ganz kurzes Codebsp) aussieht.
Wie wär's mit einer synchronisierten Liste, in die alle Event-Threads schreiben und die vom Mainthread abgearbeitet wird?
Zitat
Wie man das Problem vermeiden kann weiß ich aber nicht.
Dem Projektleiter diesen Schwachsinn ausreden. Alles deaktivieren und freuen, daß es genauso unsicher ist wie vorher, aber suppi läuft.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#5
geschrieben 28. März 2006 - 08:26
Wieso ist es verboten dass ein Thread die GUI ändert?
Schau dir mal Control.Invoke. bzw. Control.BeginInvoke an.
Und weiß nicht was ihr mit der Sicherheitspolitik von .Net habt. Dort wurde CAS endlich mal ordentlich umgesetzt und der Code darf prinzipiell erstmal nicht alles wie in vielen anderen unmanaged Sprachen.
Schau dir mal Control.Invoke. bzw. Control.BeginInvoke an.
Und weiß nicht was ihr mit der Sicherheitspolitik von .Net habt. Dort wurde CAS endlich mal ordentlich umgesetzt und der Code darf prinzipiell erstmal nicht alles wie in vielen anderen unmanaged Sprachen.
Heimat ist nicht immer dort, wo wir zur Welt kamen - Heimat ist wo wir lieben. *Ehm Welk
#6
geschrieben 28. März 2006 - 16:23
Zitat
Wieso ist es verboten dass ein Thread die GUI ändert?
Designvorgabe, IMHO auch vernünftig. Stichwort: Model-View-Controller
Zitat
Und weiß nicht was ihr mit der Sicherheitspolitik von .Net habt. Dort wurde CAS endlich mal ordentlich umgesetzt und der Code darf prinzipiell erstmal nicht alles wie in vielen anderen unmanaged Sprachen.
1. Es gibt nicht mal eine Policy, die Unsafe Code verbietet. Und damit kann man nun wirklich alles anstellen.
2. Selbst mit Safe Code kann man schon allein in den vorgegebenen Bibliotheken eigentlich undenkbar viel anstellen, weil die kein bisschen Sicherheit bietet. Sicher programmierter eigener Code ist meist auch nicht vorhanden, und wie's scheint sollte es gar bei absolut sicherem Code möglich sein, aus der Sandbox auszubrechen.
3. Meist nützt das sowieso nichts, weil man das Deployment mit Setup.exe, MSI-Bootstrapper oder dergleichen anstrengt, wo erst der potentiell unsichere Code dafür sorgen muss, daß die angeblich sichere Umgebung aufgesetzt wird.
Mittlerweile ist man schon bei .NET 2.0, aber offenbar hat immernoch nicht jeder gemerkt, da das Sicherheitsmodell eine reine Farce ist.
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)

Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
Thema verteilen:
Seite 1 von 1