2017-03-24 2 views
1

Ich schreibe ein Dienstprogramm VB Script für FTP-Funktionalität und die Serverdetails (Host, Benutzer und Passwort) als Befehlszeilenargumente akzeptieren. Es ist möglich, dass dasselbe VB-Skript gleichzeitig aus zwei verschiedenen übergeordneten Jobs für FTP-Vorgänge aufgerufen werden kann.VB Script Global Scope DIM Anweisung - Nebenläufigkeit

Meine Frage ist, in diesem Fall, wo das gleiche VB-Skript gleichzeitig aufgerufen wird, würde es eine Chance der DIM-Variablen Kollision im globalen Bereich oder Befehlszeile Variable Kollision definiert werden.

Wenn die "Antwort" ja ist. Könnten Sie mir bitte Bescheid sagen, gibt es eine Möglichkeit, diese Kollision zu vermeiden?

+6

Nein, es handelt sich um zwei vollständig separate Skripts, die in ihren eigenen Windows Scripting Host-Prozessen ausgeführt werden. Der globale Gültigkeitsbereich ist nur innerhalb des übergeordneten Prozesses global, sie können nicht kollidieren. – Lankymart

Antwort

1

Kurze Antwort: Nein.


Ein Skript läuft in einem Host-Prozess. Üblicherweise ist dieser Prozess der wscript.exe oder cscript.exe, die beide als Windows Scripting Host bezeichnet werden. Jedes Mal, wenn Sie ein Skript ausführen, wird ein einzelner Hostprozess gestartet und hier befindet sich der globale Bereich des Skripts. Alle nachfolgenden Skripts haben ihren eigenen Hostprozess und ihren globalen Gültigkeitsbereich.

Aus diesem Grund besteht keine Möglichkeit, dass der globale Bereich in mehreren Skripts kollidiert.

Es ist ziemlich einfach zu testen, erstellen Sie zwei Skripte mit den gleichen Public Variablen und sehen, ob man die anderen beeinflussen kann. So könnten Sie Ihre eigene Frage beantworten.