コード例 #1
0
ファイル: IDWOS.cs プロジェクト: IDWMaster/IDWOS2012
 /// <summary>
 /// Dispatches a JavaScript function to the main thread
 /// </summary>
 /// <param name="ptr">The function pointer</param>
 /// <param name="args">The arguments to pass to the function</param>
 /// <param name="deleteAfterExec">Whether or not this pointer should be deleted after the function has been called</param>
 public void DispatchFunction(JSFunctionPtr ptr,bool deleteAfterExec, params object[] args)
 {
     JSMarshaller marshal = new JSMarshaller();
     marshal.args = args;
     marshal.DeleteAfterExecution = deleteAfterExec;
     marshal.ptr = ptr;
     interruptfunctions.Add(marshal);
     mvent.Set();
 }
コード例 #2
0
ファイル: IDWOS.cs プロジェクト: IDWMaster/IDWOS2012
 IntPtr setInterval(int count, IntPtr args)
 {
     object[] data = vm.Deserialize(count, args);
     JSFunctionPtr ptr = data[0] as JSFunctionPtr;
     if (!eventthreadrunning)
     {
         eventthreadrunning = true;
         System.Threading.Thread mthread = new Thread(eventthread);
         mthread.Start();
     }
     JSEvent tt = new JSEvent();
     JSMarshaller marshal = new JSMarshaller();
     marshal.args = new object[0];
     marshal.DeleteAfterExecution = false;
     marshal.ptr = ptr;
     tt.marshaller = marshal;
     tt.timeout = (int)data[1];
     tt.repeating = true;
     events.Add(tt);
     eventTimer.Set();
     intervals.Add(ivalid, ptr);
     ivalid++;
     return vm.Serialize(this, ivalid-1);
 }
コード例 #3
0
ファイル: IDWOS.cs プロジェクト: IDWMaster/IDWOS2012
        void firetarget(object sender)
        {
            mpass mp = sender as mpass;
            System.Threading.Thread.Sleep(mp.timeout);

            JSMarshaller marshal = new JSMarshaller();
            marshal.ptr = mp.function;
            marshal.args = new object[0];
                interruptfunctions.Add(marshal);
                mvent.Set();
        }