Passing existing COM server to parallel cluster
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi,
I'm wondering whether an existing COM server, invoked by something like
Excel=actxserver('excel.application');
can be passed to a local parallel cluster as an argument of a Matlab function via the createtask command, say as in
cluster=parcluster;
job=createJob(cluster);
createTask(job,@genericFunction,1,{arg1,arg2,Excel});
submit(job)
wait(job)
results=fetchOutputs(job);
I tried this, and noticed that (in Win Task Manager) the slave opens up another COM server -- which is not what I'm looking for.
Any ideas?
Thanks in advance,
Sergio
0 Commenti
Risposte (1)
Edric Ellis
il 13 Feb 2014
You need to use actxGetRunningServer on the workers rather than passing the server object directly, like so:
>> e = actxserver('Excel.application')
e =
COM.Excel_application
>> e.Hwnd
ans =
199964
>> c = parcluster('local');
>> j = batch(c, 'myE = actxGetRunningServer(''Excel.appliction''); myE.Hwnd');
>> wait(j);
>> diary(j)
--- Start Diary ---
ans =
199964
--- End Diary ---
0 Commenti
Vedere anche
Categorie
Scopri di più su Use COM Objects in MATLAB in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!