Member variables in method are null when called as delegate from thread
Tim
t.oliver at windowslive.com
Mon Jan 11 00:43:00 UTC 2021
Hi there,
I have something like this:
class Foo{
MongoClient db;
this(){
db = connectMongoDB("127.0.0.1");
void delegate()[string] commands = ["start": &this.start];
MessageService messenger = new MessageService(8081, commands);
}
void start(){
// Do something with db
}
MessageService is a thread that deals with socket communication.
When a command comes in, it calls the appropriate delegate given
to it by commands. When MessageService calls the delegate for
start, db is null. If I call start() in the Foo constructor it
works just fine. Am I missing something here? Do delegates get
called outside of their class context? I know I could just pass
the db into start but I want to work out exactly why this is
happening
Thanks in advance
More information about the Digitalmars-d-learn
mailing list