Je voudrais savoir comment les threads sont gérés côté serveur en utilisant les objets MarshalByRef.Modèle de threading à remontage NET
Compte tenu de ma classe de MarshalByRef déportée:
public class MyRemotedClass : MarshalByRef
{
public int MyInt;
public string MyString;
}
code client (seul thread):
MyRemotedClass m = GetSomehowMyRemotedClass();
m.MyInt = 5; // Write operation 1
m.MyString = "Hello World"; // Write operation 2
Du côté du serveur, nous avons les deux opérations d'écriture. Je suppose que le fil provient du ThreadPool. Cependant, comme la classe est MarshalByRef, les deux opeations sont des appels de procédure distants distincts. Vont-ils fonctionner sur un fil séparé? Si oui, peut-il arriver que l'opération 2 soit exécutée avant la fin de l'opération 1? PS: Rendre MyRemotedClass MarshalByRef est une décision MAUVAISE. Mais je n'ai pas le droit de changer cela, alors ne le proposez pas.
Je ne pense pas * qu'il créera une nouvelle instance s'il s'agit de MarshalByRefObject. Tout le point de MBRO (tel que je le comprends) est que seulement une référence est rassemblée, et l'objet lui-même "vit" sur le serveur. –
détaché - donc à distance des services/locations à vie. –