void BtnExportClick(object sender, EventArgs e)
        {
            Enabled             = false;
            Exporter.LogMessage = LogMessage;

            Thread t = new Thread(delegate()
            {
                try
                {
                    Exporter.ExportToFile(txtFileName.Text, uLocalID);
                    LogMessage("Export Successful.");
                    if (InvokeRequired)
                    {
                        BeginInvoke(new MethodInvoker(() => Enabled = true));
                    }
                }
                catch (Exception ex)
                {
                    LogMessage("Export failed.  Reason: {0}", ex.Message);
                }
            })
            {
                IsBackground = true
            };

            t.Start();
        }
Exemplo n.º 2
0
 public WorldPathSystem(GridClient gc)
 {
     MeshingQueue.StackerThread.Priority = System.Threading.ThreadPriority.AboveNormal;
     lock (GlobalRoutes)
     {
         if ((!gc.Settings.AVATAR_TRACKING))
         {
             Error("client.Settings.AVATAR_TRACKING != true");
         }
         if ((!gc.Settings.ALWAYS_DECODE_OBJECTS))
         {
             Error("client.Settings.ALWAYS_DECODE_OBJECTS != true");
         }
         if ((!gc.Settings.OBJECT_TRACKING))
         {
             Error("client.Settings.OBJECT_TRACKING != true");
         }
         if (TrackPathsThread == null)
         {
             TrackPathsThread      = new Thread(TrackPaths);
             TrackPathsThread.Name = "Track paths";
             //TrackPathsThread.Priority = ThreadPriority.AboveNormal;
             TrackPathsThread.Start();
         }
     }
 }
Exemplo n.º 3
0
        public MediaManager(METAboltInstance instance)
            : base()
        {
            this.Instance = instance;
            manager       = this;

            if (MainProgram.CommandLine.DisableSound)
            {
                soundSystemAvailable = false;
                return;
            }

            endCallback = new FMOD.CHANNEL_CALLBACK(DispatchEndCallback);
            allBuffers  = new Dictionary <UUID, BufferSound>();

            // Start the background thread that does all the FMOD calls.
            soundThread = new Thread(new ThreadStart(CommandLoop));
            soundThread.IsBackground = true;
            soundThread.Name         = "SoundThread";
            soundThread.Start();

            // Start the background thread that updates listerner position.
            listenerThread = new Thread(new ThreadStart(ListenerUpdate));
            listenerThread.IsBackground = true;
            listenerThread.Name         = "ListenerThread";
            listenerThread.Start();

            Instance.ClientChanged += new EventHandler <ClientChangedEventArgs>(Instance_ClientChanged);

            // Wait for init to complete
            initDone.WaitOne();
            initDone = null;
        }
Exemplo n.º 4
0
 private void ExecuteCommand(string text)
 {
     lock (ExecuteCommandLock)
     {
         if (TodoThread != null)
         {
             TodoThread.Abort();
             TodoThread = null;
         }
         AIMLPadEditor edit = this;
         submitButton.Enabled = false;
         TodoThread           = new Thread(() =>
         {
             robot.AcceptInput(WriteLine, text, user, true,
                               RequestKind.CommandAndChatProcessor, true);
             if (InvokeRequired)
             {
                 Invoke(new ThreadStart(() =>
                 {
                     edit.PopulateRobotChange();
                     edit.PopulateUserChange();
                     submitButton.Enabled = true;
                     consoleInputText.SelectAll();
                 }));
             }
         });
         TodoThread.Start();
     }
 }
        ///Configuration config;

        public void startSocketListener()
        {
            // The thread that accepts the Client and awaits messages

            int maxRebinds = 10;

            this.Bound = TryBind(ServerPort);
            while (maxRebinds > 0 && !this.Bound)
            {
                ServerPort = ServerPort + ServerPortIncr;
                this.Bound = TryBind(ServerPort);
                maxRebinds--;
            }
            if (!Bound)
            {
                WriteLine("Gave up on TCPServer");
                return;
            }
            else
            {
                WriteLine("Realy bound " + ServerPort + "!");
            }
            thrSvr      = new Thread(tcpSrv);
            thrSvr.Name = ToString();
            // The thread calls the tcpSvr() method=
            thrSvr.Start();
        }
Exemplo n.º 6
0
        private void saveBtn_Click(object sender, EventArgs e)
        {
            WindowWrapper mainWindow = new WindowWrapper(frmMain.ActiveForm.Handle);

            System.Windows.Forms.SaveFileDialog dlg = new SaveFileDialog();
            dlg.AddExtension     = true;
            dlg.RestoreDirectory = true;
            dlg.Title            = "Save object as...";
            dlg.Filter           = "XML file (*.xml)|*.xml";
            DialogResult res = dlg.ShowDialog();

            if (res == DialogResult.OK)
            {
                Thread t = new Thread(new ThreadStart(delegate()
                {
                    try
                    {
                        PrimSerializer s = new PrimSerializer(client);
                        string primsXmls = s.GetSerializedPrims(client.Network.CurrentSim, selectedPrim.LocalID);
                        System.IO.File.WriteAllText(dlg.FileName, primsXmls);
                        s.CleanUp();
                        s = null;
                        MessageBox.Show(mainWindow, "Successfully saved " + dlg.FileName, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (Exception excp)
                    {
                        MessageBox.Show(mainWindow, excp.Message, "Saving failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }));
                t.IsBackground = true;
                t.Start();
            }
        }
Exemplo n.º 7
0
        public void RunClientManagerStartupLisp()
        {
            if (ClientManager.StartedUpLisp)
            {
                return;
            }
            ThreadStart mi = () =>
            {
                DLRConsole.SafelyRun(clientManager.StartUpLisp);
            };

            StartUpLispThread            = Thread.CurrentThread;
            clientManager.outputDelegate = WriteLine;
            DLRConsole.DebugWriteLine("Current Thread = " + Thread.CurrentThread.Name);
            if (false && StartUpLispThread.ApartmentState == ApartmentState.STA)
            {
                mi();
            }
            else
            {
                StartUpLispThread = new Thread(mi)
                {
                    Name = "StartUpLispThread"
                };
                StartUpLispThread.SetApartmentState(ApartmentState.STA);
                StartUpLispThread.Start();
            }
        }
 //    TcpClient tcp_client = null;
 private void tcpSrv()
 {
     try
     {
         while (!IsDisposing)
         {
             try
             {
                 {
                     TcpClient ClientHandle = tcp_socket.AcceptTcpClient();
                     var       clt          = new SingleBotTcpClient(ClientHandle, this);
                     singleBotTcpClients.Add(clt);
                     Thread t = new Thread(new ThreadStart(clt.DoLoop));
                     t.Name = "ClientHandle thread for " + ClientHandle + " " + ToString();
                     t.Start();
                 }
             }
             catch (Exception e)
             {
                 WriteLine(e.ToString());
             }
         }
         //  tcp_socket.Stop();
         // thrSvr.Abort();
     }
     catch (Exception ee)
     {
         WriteLine(ee.ToString());
     }
 }
Exemplo n.º 9
0
        public override void InvokeReal()
        {
            target0.X = (float)target.X;
            target0.Y = (float)target.Y;

            RegCallback();
            SetMovement();
            //System.Threading.Thread.Sleep(100);

            //XYMovement();
            //ZMovement();
            //ClientMovement.SendUpdate(false);

            // start if not already started
            var bc = GetBotClient();

            if (!FollowThread.IsAlive)
            {
                try
                {
                    bc.AddThread(FollowThread);
                    FollowThread.Start();
                    FollowThread.Join();
                }
                finally
                {
                    bc.RemoveThread(FollowThread);
                    DeRegCallback();
                }
            }
        }
Exemplo n.º 10
0
        public Interpreter getInterpreter()
        {
            if (interpreter == null)
            {
                jlispThread = new Thread(new ThreadStart(StartJLISP));
                jlispThread.Start();
                while (interpreter == null)
                {
                    ironTextBoxControl.Update();
                }
            }
            if (varPackage == null)
            {
                varPackage = Symbol._PACKAGE_;
            }
            LispObject pkg = varPackage.symbolValue();

            if (lastPackage != pkg)
            {
                lastPackage = pkg;
                ironTextBoxControl.Prompt = ((Package)pkg).getName() + "> ";
                //ironTextBoxControl.ConsoleTextBox
            }
            return(interpreter);
        }
Exemplo n.º 11
0
        public static void ImportFromFile(GridClient client)
        {
            WindowWrapper mainWindow = new WindowWrapper(frmMain.ActiveForm.Handle);

            System.Windows.Forms.OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title       = "Open object file";
            dlg.Filter      = "XML file (*.xml)|*.xml";
            dlg.Multiselect = false;
            DialogResult res = dlg.ShowDialog();

            if (res == DialogResult.OK)
            {
                Thread t = new Thread(new System.Threading.ThreadStart(delegate()
                {
                    try
                    {
                        PrimDeserializer d = new PrimDeserializer(client);
                        string primsXmls   = System.IO.File.ReadAllText(dlg.FileName);
                        d.CreateObjectFromXml(primsXmls);
                        d.CleanUp();
                        d = null;
                        MessageBox.Show(mainWindow, "Successfully imported " + dlg.FileName, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (Exception excp)
                    {
                        MessageBox.Show(mainWindow, excp.Message, "Saving failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }));

                t.IsBackground = true;
                t.Start();
            }
        }
Exemplo n.º 12
0
 /// <summary>
 ///
 /// </summary>
 public void Start()
 {
     _Thread              = new Thread(new ThreadStart(_Worker));
     _Thread.Name         = "ReadThread (" + _Connection.Address + ":" + _Connection.Port + ")";
     _Thread.IsBackground = true;
     _Thread.Start();
 }
Exemplo n.º 13
0
        /// <summary>
        /// Initialize the synthesis subsystem.
        /// </summary>
        internal override void Start()
        {
            if (syn == null)
            {
                return;
            }

            // Fire up the synth subsystem.
            syn.Start();

            // Get the list of installed voices.  This is done in a
            // platform-specific way.
            voices.Populate(syn.GetVoices());
            voices.Start();

            // Create the work queue if we can deal with it
            if (control.osLayer != null)
            {
                queue = new Queue <QueuedSpeech>();

                // Start the background thread that does all the text-to-speech.
                speakingThread = new Thread(new ThreadStart(SpeakLoop));
                speakingThread.IsBackground = true;
                speakingThread.Name         = "SpeakingThread";
                speakingThread.Start();
            }
        }
Exemplo n.º 14
0
 public void StartHeartBeatThread(int heartbeatSeconds)
 {
     _log.Debug("Starting new heartbeat thread");
     _heartBeatRunner      = new HeartBeatThread(ProtocolWriter, heartbeatSeconds * 1000);
     _heartBeatThread      = new Thread(new ThreadStart(_heartBeatRunner.Run));
     _heartBeatThread.Name = "HeartBeat";
     _heartBeatThread.Start();
 }
Exemplo n.º 15
0
 public void Start()
 {
     assetLoop = new Thread(LoopAnim)
     {
         Name = string.Format("Thread for {0}", ToString())
     };
     assetLoop.Start();
 }
Exemplo n.º 16
0
 public override void InvokeReal()
 {
     // start if not already started
     if (!FollowThread.IsAlive)
     {
         FollowThread.Start();
         FollowThread.Join();
     }
 }
 public void ReloadInventory()
 {
     Inventory.Items                = new Dictionary <UUID, InventoryNode>();
     Inventory.RootFolder           = Inventory.RootFolder;
     Inventory.RootNode.NeedsUpdate = true;
     InventoryUpdate                = new Thread(new ThreadStart(StartTraverseNodes));
     InventoryUpdate.Name           = "InventoryUpdate";
     InventoryUpdate.IsBackground   = true;
     InventoryUpdate.Start();
 }
Exemplo n.º 18
0
        private void StartFailoverThread()
        {
            Thread failoverThread = new Thread(new ThreadStart(_failoverHandler.Run));

            failoverThread.Name = "Failover";
            // Do not inherit daemon-ness from current thread as this can be a daemon
            // thread such as a AnonymousIoService thread.
            failoverThread.IsBackground = false;
            failoverThread.Start();
        }
Exemplo n.º 19
0
        public ScriptEventListener(ScriptInterpreter interp, BotClient client)
        {
            taskInterperter = interp;
            taskInterperter.Intern("Client", client);
            taskInterperter.Intern("thisClient", client);
            if (client != null) WorldSystem = client.WorldSystem;

            thrJobQueue = new Thread(jobManager);
            thrJobQueue.Name = string.Format("ScriptEventListener Thread for {0}", (client ?? (Object)"ClientManager"));
            thrJobQueue.Start();
        }
Exemplo n.º 20
0
 public ParrotAction(SimActor a)
     : base(String.Format("AvatarThinkerThread for {0}", a))
 {
     Actor = a;
     Actor["CurrentNeeds"] = new BotNeeds(90.0f);
     avatarHeartbeatThread = new Thread(Aging)
     {
         Name     = String.Format("AvatarHeartbeatThread for {0}", Actor),
         Priority = ThreadPriority.Lowest
     };
     avatarHeartbeatThread.Start();
 }
Exemplo n.º 21
0
 internal void DoWork()
 {
     WorkerThread = new Thread(DoWorkNow, 0)
     {
         Name = "Worker for " + GetName(),
     };
     WorkerThread.Start();
     if (!DoWorkInThread)
     {
         WorkerThread.Join();
     }
 }
Exemplo n.º 22
0
            /// <summary>
            ///
            /// </summary>
            public void Start()
            {
                DateTime now = DateTime.Now;

                _Connection._LastPingSent     = now;
                _Connection._LastPongReceived = now;

                _Thread              = new Thread(new ThreadStart(_Worker));
                _Thread.Name         = "IdleWorkerThread (" + _Connection.Address + ":" + _Connection.Port + ")";
                _Thread.IsBackground = true;
                _Thread.Start();
            }
Exemplo n.º 23
0
 public static void StartScanningAppDomain()
 {
     lock (ScanAppDomainLock)
     {
         if (ScanAppDomainInProgress)
         {
             return;
         }
         ScanAppDomainInProgress  = true;
         ScanAppDomainThread      = new Thread(DoScanningAppDomain);
         ScanAppDomainThread.Name = "DoScanningAppDomain";
         ScanAppDomainThread.Start();
     }
 }
        public ScriptEventListener(ScriptInterpreter interp, BotClient client)
        {
            taskInterperter = interp;
            taskInterperter.Intern("Client", client);
            taskInterperter.Intern("thisClient", client);
            if (client != null)
            {
                WorldSystem = client.WorldSystem;
            }

            thrJobQueue      = new Thread(jobManager);
            thrJobQueue.Name = string.Format("ScriptEventListener Thread for {0}", (client ?? (Object)"ClientManager"));
            thrJobQueue.Start();
        }
Exemplo n.º 25
0
        /// <summary>
        /// Asynchronously brings cache size to the 90% of the max size
        /// </summary>
        public void BeginPrune()
        {
            // Check if the background cache cleaning thread is active first
            if (cleanerThread != null && cleanerThread.IsAlive)
            {
                return;
            }

            lock (this)
            {
                cleanerThread = new Thread(new ThreadStart(this.Prune));
                cleanerThread.IsBackground = true;
                cleanerThread.Start();
            }
        }
        public void Init1()
        {
            InventoryUpdate              = new Thread(new ThreadStart(StartTraverseNodes));
            InventoryUpdate.Name         = "InventoryUpdate";
            InventoryUpdate.IsBackground = true;
            InventoryUpdate.Start();


            // Callbacks
            Inventory.InventoryObjectAdded   += new EventHandler <InventoryObjectAddedEventArgs>(Inventory_InventoryObjectAdded);
            Inventory.InventoryObjectUpdated += new EventHandler <InventoryObjectUpdatedEventArgs>(Inventory_InventoryObjectUpdated);
            Inventory.InventoryObjectRemoved += new EventHandler <InventoryObjectRemovedEventArgs>(Inventory_InventoryObjectRemoved);

            client.Objects.ObjectUpdate     += new EventHandler <PrimEventArgs>(Objects_AttachmentUpdate);
            client.Objects.KillObject       += new EventHandler <KillObjectEventArgs>(Objects_KillObject);
            client.Appearance.AppearanceSet += new EventHandler <AppearanceSetEventArgs>(Appearance_AppearanceSet);
        }
Exemplo n.º 27
0
 /// <summary>
 /// runs in a STA thread (by creating one)  Does not "join"
 /// </summary>
 /// <param name="args"></param>
 public static void RunInThread(ApartmentState must, ThreadStart runMain, bool blocking)
 {
     if (!blocking || Thread.CurrentThread.ApartmentState != must)
     {
         Thread newThread = new Thread(runMain);
         newThread.SetApartmentState(must);
         newThread.Start();
         if (blocking)
         {
             newThread.Join();
         }
         return;
     }
     else
     {
         runMain();
     }
 }
        private void btnSave_Click(object sender, EventArgs e)
        {
            if (Form.ActiveForm == null)
            {
                return;
            }
            WindowWrapper  mainWindow = new WindowWrapper(Form.ActiveForm.Handle);
            SaveFileDialog dlg        = new SaveFileDialog
            {
                AddExtension     = true,
                RestoreDirectory = true,
                Title            = "Save object as...",
                Filter           = "XML file (*.xml)|*.xml"
            };
            DialogResult res = dlg.ShowDialog();

            if (res == DialogResult.OK)
            {
                Thread t = new Thread(delegate()
                {
                    try
                    {
                        PrimSerializer s = new PrimSerializer(client);
                        string primsXmls =
                            s.GetSerializedAttachmentPrims(client.Network.CurrentSim, attachment.LocalID);
                        System.IO.File.WriteAllText(dlg.FileName, primsXmls);
                        s.CleanUp();
                        s = null;
                        MessageBox.Show(mainWindow, "Successfully saved " + dlg.FileName, "Success",
                                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (Exception excp)
                    {
                        MessageBox.Show(mainWindow, excp.Message, "Saving failed", MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                    }
                })
                {
                    IsBackground = true
                };
                t.Start();
            }
        }
Exemplo n.º 29
0
 public CommandsManager(RadegastInstance inst)
 {
     instance = inst;
     AddCmd("help", "Shows help info", "help help",
            (name, cmdargs, writeline) =>
     {
         string args = String.Join(" ", cmdargs);
         Help(args, writeline);
         lock (InterpretersLoaded) foreach (ICommandInterpreter manager in InterpretersLoaded)
             {
                 manager.Help(args, writeline);
             }
     });
     _commandWorker = new Thread(CommandsManager_CommandWorker)
     {
         Name         = "CommandsManager Worker",
         IsBackground = true
     };
     _commandWorker.Start();
 }
Exemplo n.º 30
0
 public void StartThinking()
 {
     if (avatarThinkerThread == null)
     {
         avatarThinkerThread = new Thread(Think)
         {
             Name = String.Format("AvatarThinkerThread for {0}", Actor)
         };
         if (Actor.IsControllable)
         {
             ///  only think for ourselves
             avatarThinkerThread.Priority = ThreadPriority.Normal;
             avatarThinkerThread.Start();
         }
     }
     else if (!avatarThinkerThread.IsAlive)
     {
         avatarThinkerThread.Resume();
     }
 }
Exemplo n.º 31
0
        public Interpreter getInterpreter()
        {
            if (interpreter == null)
            {
                if (false)
                {
                    jlispThread = new Thread(new ThreadStart(StartJLISP));
                    jlispThread.Start();
                }
                else
                {
                    // StartInstanceBlocked();
                    // isReady = true;

                    jrunnable = new JRunnableLisp(this);
                    jthread   = new java.lang.Thread(jrunnable);
                    jthread.start();
                }
                while (!isReady)
                {
                    java.lang.Thread.sleep(1000);// Thread.Sleep(1000);// ironTextBoxControl.Update();
                    Yield();
                }
            }
            if (varPackage == null)
            {
                varPackage = Symbol._PACKAGE_;
            }
            LispObject pkg = varPackage.symbolValue();

            if (lastPackage != pkg)
            {
                lastPackage = pkg;
                //            ironTextBoxControl.Prompt = ((Package)pkg).getName() + "> ";
                //          ironTextBoxControl.getIronTextBox();

                // ironTextBoxControl.getIronTextBox().Parent;
                //ironTextBoxControl.ConsoleTextBox
            }
            return(interpreter);
        }
Exemplo n.º 32
0
        void glControl_Load(object sender, EventArgs e)
        {
            if (glControlLoaded) return;

            try
            {
                GL.ShadeModel(ShadingModel.Smooth);

                GL.Enable(EnableCap.Lighting);
                GL.Enable(EnableCap.Light0);
                SetSun();

                GL.ClearDepth(1.0d);
                GL.Enable(EnableCap.DepthTest);
                GL.Enable(EnableCap.CullFace);
                GL.CullFace(CullFaceMode.Back);

                // GL.Color() tracks objects ambient and diffuse color
                GL.Enable(EnableCap.ColorMaterial);
                GL.ColorMaterial(MaterialFace.Front, ColorMaterialParameter.AmbientAndDiffuse);

                GL.DepthMask(true);
                GL.DepthFunc(DepthFunction.Lequal);
                GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest);
                GL.MatrixMode(MatrixMode.Projection);

                GL.AlphaFunc(AlphaFunction.Greater, 0.5f);
                GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);

                // Compatibility checks
                OpenTK.Graphics.IGraphicsContextInternal context = glControl.Context as OpenTK.Graphics.IGraphicsContextInternal;
                string glExtensions = GL.GetString(StringName.Extensions);

                // VBO
                RenderSettings.ARBVBOPresent = context.GetAddress("glGenBuffersARB") != IntPtr.Zero;
                RenderSettings.CoreVBOPresent = context.GetAddress("glGenBuffers") != IntPtr.Zero;
                RenderSettings.UseVBO = (RenderSettings.ARBVBOPresent || RenderSettings.CoreVBOPresent)
                    && instance.GlobalSettings["rendering_use_vbo"];

                // Occlusion Query
                RenderSettings.ARBQuerySupported = context.GetAddress("glGetQueryObjectivARB") != IntPtr.Zero;
                RenderSettings.CoreQuerySupported = context.GetAddress("glGetQueryObjectiv") != IntPtr.Zero;
                RenderSettings.OcclusionCullingEnabled = (RenderSettings.CoreQuerySupported || RenderSettings.ARBQuerySupported)
                    && instance.GlobalSettings["rendering_occlusion_culling_enabled2"];

                // Mipmap
                RenderSettings.HasMipmap = context.GetAddress("glGenerateMipmap") != IntPtr.Zero;

                // Shader support
                RenderSettings.HasShaders = glExtensions.Contains("vertex_shader") && glExtensions.Contains("fragment_shader");

                // Multi texture
                RenderSettings.HasMultiTexturing = context.GetAddress("glMultiTexCoord2f") != IntPtr.Zero;
                RenderSettings.WaterReflections = instance.GlobalSettings["water_reflections"];

                if (!RenderSettings.HasMultiTexturing || !RenderSettings.HasShaders)
                {
                    RenderSettings.WaterReflections = false;
                }

                // Do textures have to have dimensions that are powers of two
                RenderSettings.TextureNonPowerOfTwoSupported = glExtensions.Contains("texture_non_power_of_two");

                // Occlusion culling
                RenderSettings.OcclusionCullingEnabled = Instance.GlobalSettings["rendering_occlusion_culling_enabled2"]
                    && (RenderSettings.ARBQuerySupported || RenderSettings.CoreQuerySupported);

                // Shiny
                RenderSettings.EnableShiny = Instance.GlobalSettings["scene_viewer_shiny"];

                RenderingEnabled = true;
                // Call the resizing function which sets up the GL drawing window
                // and will also invalidate the GL control
                glControl_Resize(null, null);
                RenderingEnabled = false;

                // glControl.Context.MakeCurrent(null);
                TextureThreadContextReady.Reset();
                var textureThread = new Thread(() => TextureThread())
                {
                    IsBackground = true,
                    Name = "TextureDecodingThread"
                };
                textureThread.Start();
                TextureThreadContextReady.WaitOne(1000, false);
                // glControl.MakeCurrent();
                InitWater();
                InitShaders();
                RenderingEnabled = true;
                glControlLoaded = true;
                LoadCurrentPrims();
            }
            catch (Exception ex)
            {
                RenderingEnabled = false;
                Logger.Log("Failed to initialize OpenGL control", Helpers.LogLevel.Warning, Client, ex);
            }
        }
Exemplo n.º 33
0
        public Interpreter getInterpreter()
        {
            if (interpreter == null)
            {
                if (false)
                {
                    jlispThread = new Thread(new ThreadStart(StartJLISP));
                    jlispThread.Start();
                }
                else
                {
                    // StartInstanceBlocked();
                    // isReady = true;

                    jrunnable = new JRunnableLisp(this);
                    jthread = new java.lang.Thread(jrunnable);
                    jthread.start();
                }
                while (!isReady)
                {
                    java.lang.Thread.sleep(1000);// Thread.Sleep(1000);// ironTextBoxControl.Update();
                    Yield();
                }
            }
            if (varPackage == null)
            {
                varPackage = Symbol._PACKAGE_;
            }
            LispObject pkg = varPackage.symbolValue();
            if (lastPackage != pkg)
            {
                lastPackage = pkg;
                //            ironTextBoxControl.Prompt = ((Package)pkg).getName() + "> ";
                //          ironTextBoxControl.getIronTextBox();

                // ironTextBoxControl.getIronTextBox().Parent;
                //ironTextBoxControl.ConsoleTextBox
            }
            return interpreter;

        }       
Exemplo n.º 34
0
        public Interpreter getInterpreter()
        {
            if (interpreter == null)
            {
                jlispThread = new Thread(new ThreadStart(StartJLISP));
                jlispThread.Start();
                while (interpreter == null)
                {
                    ironTextBoxControl.Update();
                }
            }
            if (varPackage == null)
            {
                varPackage = Symbol._PACKAGE_;
            }
            LispObject pkg = varPackage.symbolValue();
            if (lastPackage != pkg)
            {
                lastPackage = pkg;
                ironTextBoxControl.Prompt = ((Package)pkg).getName() + "> ";
                //ironTextBoxControl.ConsoleTextBox
            }
            return interpreter;

        }
Exemplo n.º 35
0
 public WorldPathSystem(GridClient gc)
 {
     MeshingQueue.StackerThread.Priority = System.Threading.ThreadPriority.AboveNormal;
     lock (GlobalRoutes)
     {
         if ((!gc.Settings.AVATAR_TRACKING)) Error("client.Settings.AVATAR_TRACKING != true");
         if ((!gc.Settings.ALWAYS_DECODE_OBJECTS)) Error("client.Settings.ALWAYS_DECODE_OBJECTS != true");
         if ((!gc.Settings.OBJECT_TRACKING)) Error("client.Settings.OBJECT_TRACKING != true");
         if (TrackPathsThread == null)
         {
             TrackPathsThread = new Thread(TrackPaths);
             TrackPathsThread.Name = "Track paths";
             //TrackPathsThread.Priority = ThreadPriority.AboveNormal;
             TrackPathsThread.Start();
         }
     }
 }
Exemplo n.º 36
0
 public CommandsManager(RadegastInstance inst)
 {
     instance = inst;
     AddCmd("help", "Shows help info", "help help",
            (name, cmdargs, writeline) =>
            {
                string args = String.Join(" ", cmdargs);
                Help(args, writeline);
                lock (InterpretersLoaded) foreach (ICommandInterpreter manager in InterpretersLoaded)
                    {
                        manager.Help(args, writeline);
                    }
            });
     _commandWorker = new Thread(CommandsManager_CommandWorker)
                         {
                             Name = "CommandsManager Worker",
                             IsBackground = true
                         };
     _commandWorker.Start();
 }
Exemplo n.º 37
0
        public void ReloadInventory()
        {
            if (TreeUpdateInProgress)
            {
                TreeUpdateTimer.Stop();
                InventoryUpdate.Abort();
                InventoryUpdate = null;
            }

            saveAllTToolStripMenuItem.Enabled = false;

            Inventory.Items = new Dictionary<UUID, InventoryNode>();
            Inventory.RootFolder = Inventory.RootFolder;

            invTree.Nodes.Clear();
            UUID2NodeCache.Clear();
            invRootNode = AddDir(null, Inventory.RootFolder);
            Inventory.RootNode.NeedsUpdate = true;

            InventoryUpdate = new Thread(new ThreadStart(StartTraverseNodes));
            InventoryUpdate.Name = "InventoryUpdate";
            InventoryUpdate.IsBackground = true;
            InventoryUpdate.Start();
            invRootNode.Expand();
        }
Exemplo n.º 38
0
 public void Start()
 {
     assetLoop = new Thread(LoopAnim) { Name = string.Format("Thread for {0}", ToString()) };
     assetLoop.Start();
 }
Exemplo n.º 39
0
        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (instance.GlobalSettings["confirm_exit"].AsBoolean())
            {
                if (MessageBox.Show("Are you sure you want to exit Radegast?", "Confirm Exit", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != System.Windows.Forms.DialogResult.Yes)
                {
                    e.Cancel = true;
                    return;
                }
            }

            if (statusTimer != null)
            {
                statusTimer.Stop();
                statusTimer.Dispose();
                statusTimer = null;
            }

            if (mediaConsole != null)
            {
                if (tabsConsole.TabExists("media"))
                {
                    tabsConsole.Tabs["media"].AllowClose = true;
                    tabsConsole.Tabs["media"].Close();
                }
                else
                {
                    mediaConsole.Dispose();
                }
                mediaConsole = null;
            }

            if (netcom.IsLoggedIn)
            {
                Thread saveInvToDisk = new Thread(new ThreadStart(
                    delegate()
                    {
                        client.Inventory.Store.SaveToDisk(instance.InventoryCacheFileName);
                    }));
                saveInvToDisk.Name = "Save inventory to disk";
                saveInvToDisk.Start();

                netcom.Logout();
            }
        }
Exemplo n.º 40
0
        public MediaManager(RadegastInstance instance)
            : base()
        {
            this.Instance = instance;
            manager = this;

            if (MainProgram.CommandLine.DisableSound)
            {
                soundSystemAvailable = false;
                return;
            }

            endCallback = new FMOD.CHANNEL_CALLBACK(DispatchEndCallback);
            allBuffers = new Dictionary<UUID, BufferSound>();

            // Start the background thread that does all the FMOD calls.
            soundThread = new Thread(new ThreadStart(CommandLoop));
            soundThread.IsBackground = true;
            soundThread.Name = "SoundThread";
            soundThread.Start();

            // Start the background thread that updates listerner position.
            listenerThread = new Thread(new ThreadStart(ListenerUpdate));
            listenerThread.IsBackground = true;
            listenerThread.Name = "ListenerThread";
            listenerThread.Start();

            Instance.ClientChanged += new EventHandler<ClientChangedEventArgs>(Instance_ClientChanged);

            // Wait for init to complete
            initDone.WaitOne();
            initDone = null;
        }
Exemplo n.º 41
0
        public static Thread InSTAThread(ThreadStart invoker, string fullName) {

            Thread t = new Thread(new ThreadStart(() =>
            {
                Thread ct = Thread.CurrentThread;
                try
                {
                    if (ct.ApartmentState != ApartmentState.STA) ct.SetApartmentState(ApartmentState.STA);
                }
                catch (Exception)
                {
                } 
                try
                {
                    invoker();
                   // ct.Abort();
                }
                catch (Exception e)
                {
                    GlobalWriteLine(fullName + " " + e);
                }
            }));
            t.Name = "InSTAThread " + fullName;
            try
            {
                if (t.ApartmentState != ApartmentState.STA) t.SetApartmentState(ApartmentState.STA);
            }
            catch (Exception)
            {
                               
            }
            t.Start();
            return t;
        }
Exemplo n.º 42
0
 public void StartHeartBeatThread(int heartbeatSeconds)
 {
     _log.Debug("Starting new heartbeat thread");
     _heartBeatRunner = new HeartBeatThread(ProtocolWriter, heartbeatSeconds * 1000);
     _heartBeatThread = new Thread(new ThreadStart(_heartBeatRunner.Run));
     _heartBeatThread.Name = "HeartBeat";
     _heartBeatThread.Start();
 }
Exemplo n.º 43
0
        public NameManager(RadegastInstance instance)
        {
            this.instance = instance;

            requestTimer = new Timer(MakeRequest, null, Timeout.Infinite, Timeout.Infinite);
            cacheTimer = new Timer(SaveCache, null, Timeout.Infinite, Timeout.Infinite);
            cacheFileName = Path.Combine(instance.UserDir, "name.cache");
            LoadCachedNames();
            instance.ClientChanged += new EventHandler<ClientChangedEventArgs>(instance_ClientChanged);
            RegisterEvents(client);

            // Mono HTTPWebRequest sucks balls
            useRequestThread = instance.MonoRuntime;

            if (useRequestThread)
            {
                PendingLookups = new BlockingQueue<List<UUID>>();
                lookupGate = new Semaphore(4, 4);
                requestThread = new Thread(new ThreadStart(RequestThread));
                requestThread.IsBackground = true;
                requestThread.Name = "Display Name Request Thread";
                requestThread.Start();
            }
        }
Exemplo n.º 44
0
 internal void DoWork()
 {
     WorkerThread = new Thread(DoWorkNow, 0)
                        {
                            Name = "Worker for " + GetName(),
                        };
     WorkerThread.Start();
     if (!DoWorkInThread) WorkerThread.Join();
 }
Exemplo n.º 45
0
        //    TcpClient tcp_client = null;
        private void tcpSrv()
        {

            try
            {
                while (!IsDisposing)
                {
                    try
                    {

                        {
                            TcpClient ClientHandle = tcp_socket.AcceptTcpClient();
                            var clt = new SingleBotTcpClient(ClientHandle, this);
                            singleBotTcpClients.Add(clt);
                            Thread t = new Thread(new ThreadStart(clt.DoLoop));
                            t.Name = "ClientHandle thread for " + ClientHandle + " " + ToString();
                            t.Start();

                        }
                    }
                    catch (Exception e)
                    {
                        WriteLine(e.ToString());
                    }
                }
                //  tcp_socket.Stop();
                // thrSvr.Abort();

            }
            catch (Exception ee)
            {
                WriteLine(ee.ToString());
            }
        }
Exemplo n.º 46
0
        public SceneWindow(RadegastInstance instance)
            : base(instance)
        {
            InitializeComponent();

            this.Instance = instance;
            this.Client = instance.Client;

            UseMultiSampling = Instance.GlobalSettings["use_multi_sampling"];

            genericTaskThread = new Thread(new ThreadStart(GenericTaskRunner));
            genericTaskThread.IsBackground = true;
            genericTaskThread.Name = "Generic task queue";
            genericTaskThread.Start();

            renderer = new MeshmerizerR();
            renderTimer = new System.Diagnostics.Stopwatch();
            renderTimer.Start();

            // Camera initial setting
            Instance.State.CameraTracksOwnAvatar = false;
            Camera = new Camera();
            InitCamera();
            SetWaterPlanes();

            chatOverlay = new ChatOverlay(instance, this);
            textRendering = new TextRendering(instance);
            terrain = new RenderTerrain(instance);

            cbChatType.SelectedIndex = 1;

            DrawDistance = Instance.GlobalSettings["draw_distance"];
            pnlDebug.Visible = Instance.GlobalSettings["scene_viewer_debug_panel"];

            Client.Objects.TerseObjectUpdate += new EventHandler<TerseObjectUpdateEventArgs>(Objects_TerseObjectUpdate);
            Client.Objects.ObjectUpdate += new EventHandler<PrimEventArgs>(Objects_ObjectUpdate);
            Client.Objects.AvatarUpdate += new EventHandler<AvatarUpdateEventArgs>(Objects_AvatarUpdate);

            Client.Network.RegisterCallback(PacketType.KillObject, KillObjectHandler);
            Client.Network.SimChanged += new EventHandler<SimChangedEventArgs>(Network_SimChanged);
            Client.Terrain.LandPatchReceived += new EventHandler<LandPatchReceivedEventArgs>(Terrain_LandPatchReceived);
            Client.Avatars.AvatarAnimation += new EventHandler<AvatarAnimationEventArgs>(AvatarAnimationChanged);
            Client.Avatars.AvatarAppearance += new EventHandler<AvatarAppearanceEventArgs>(Avatars_AvatarAppearance);
            Client.Appearance.AppearanceSet += new EventHandler<AppearanceSetEventArgs>(Appearance_AppearanceSet);
            Instance.Netcom.ClientDisconnected += new EventHandler<DisconnectedEventArgs>(Netcom_ClientDisconnected);
            Application.Idle += new EventHandler(Application_Idle);

            Radegast.GUI.GuiHelpers.ApplyGuiFixes(this);
        }
Exemplo n.º 47
0
        void BtnUploadClick(object sender, EventArgs e)
        {
            this.Enabled = false;
            if (cmbImageOptions.SelectedIndex == -1)
            {
                MessageBox.Show("You must select an Image Option before you can import an object.","Import Object Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
                this.Enabled = true;
                return;
            }
            switch(cmbImageOptions.SelectedIndex)
            {
                case 0:
                    Importer.TextureUse = PrimImporter.TextureSet.OriginalUUID;
                    break;
                case 1:
                    Importer.TextureUse = PrimImporter.TextureSet.NewUUID;
                    break;
                case 2:
                    Importer.TextureUse = PrimImporter.TextureSet.SculptUUID;
                    break;
                case 3:
                    Importer.TextureUse = PrimImporter.TextureSet.WhiteUUID;
                    break;
            }
            if (chckRezAtLoc.Checked)
            {
                float x = 0.0f;
                float y = 0.0f;
                float z = 0.0f;
                if (!float.TryParse(txtX.Text,out x))
                {
                    MessageBox.Show("X Coordinate needs to be a Float position!  Example: 1.500","Import Object Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
                    this.Enabled = true;
                    return;
                }
                if (!float.TryParse(txtY.Text,out y))
                {
                    MessageBox.Show("Y Coordinate needs to be a Float position!  Example: 1.500","Import Object Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
                    this.Enabled = true;
                    return;
                }
                if (!float.TryParse(txtZ.Text,out z))
                {
                    MessageBox.Show("Z Coordinate needs to be a Float position!  Example: 1.500","Import Object Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
                    this.Enabled = true;
                    return;
                }
                Importer.RezAt = new Vector3(x,y,z);
            }
            else
            {
                Importer.RezAt = Client.Self.SimPosition;
                Importer.RezAt.Z += 3.5f;
            }

            Thread t = new Thread(new System.Threading.ThreadStart(delegate()
            {
                try
                {
                    start = DateTime.Now;
                    // First upload Images that will be needed by the Importer, if required by user.
                    if (Importer.TextureUse == PrimImporter.TextureSet.NewUUID || Importer.TextureUse == PrimImporter.TextureSet.SculptUUID)
                        UploadImages();

                    // Check to see if there are any failed uploads.
                    if (FailedUploads.Count > 0)
                    {
                        DialogResult res = MessageBox.Show(String.Format("Failed to upload {0} textures, which to try again?",FailedUploads.Count),
                                                           "Import - Upload Texture Error",MessageBoxButtons.YesNo, MessageBoxIcon.Error);
                        if (res == DialogResult.Yes)
                            UploadImagesRetry();

                        if (FailedUploads.Count != 0)
                        {
                            MessageBox.Show(String.Format("Failed to upload {0} textures on second try, aborting!",FailedUploads.Count),
                                            "Import - Upload Texture Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
                            LogMessage("Failed to import object, due to texture error, review the log for further information");
                            return;
                        }
                    }

                    LogMessage("Texture Upload completed");
                    LogMessage("Importing Prims...");
                    // If we get here, then we successfully uploaded the textures, continue with the upload of the Prims.
                    Importer.ImportFromFile(txtFileName.Text);
                    LogMessage("Import successful.");
                    LogMessage("Total Time: {0}",DateTime.Now.Subtract(start));
                }
                catch (Exception ex)
                {
                    LogMessage("Import failed. Reason: {0}",ex.Message);
                    MessageBox.Show(ex.Message,"Importing failed.",MessageBoxButtons.OK,MessageBoxIcon.Error);
                }

                BeginInvoke(new MethodInvoker(() => EnableWindow()));
            }));
            t.IsBackground = true;
            t.Start();
        }
Exemplo n.º 48
0
        private void btnFolder_Click(object sender, System.EventArgs e)
        {
            openFileDialog1.CheckFileExists = false;
            DialogResult res = openFileDialog1.ShowDialog();
            traversed = 0;

            if (res == DialogResult.OK)
            {
                string dir = Path.GetDirectoryName(openFileDialog1.FileName);
                txtFolderName.Text = folderName = dir;
                btnFolder.Enabled = false;

                lvwFiles.Items.Clear();

                if (cbList.Checked)
                {
                    try
                    {
                        csvFile = new StreamWriter(Path.Combine(dir, "inventory.csv"), false);
                        WriteCSVLine("Type", "Path", "Name", "Description", "Created", "Creator", "Last Owner");
                    }
                    catch
                    {
                        csvFile = null;
                    }
                }

                lblStatus.Text = "Fetching items...";
                sbrProgress.Style = ProgressBarStyle.Marquee;
                fetched = 0;

                if (backupThread != null)
                {
                    if (backupThread.IsAlive)
                        backupThread.Abort();
                    backupThread = null;
                }

                backupThread = new Thread(new ThreadStart(() =>
                {
                    TraverseDir(rootNode, Path.DirectorySeparatorChar.ToString());
                    if (csvFile != null)
                    {
                        try
                        {
                            csvFile.Close();
                            csvFile.Dispose();
                        }
                        catch { }
                    }
                    BeginInvoke(new MethodInvoker(() =>
                    {
                        lblStatus.Text = string.Format("Done ({0} items saved).", fetched);
                        sbrProgress.Style = ProgressBarStyle.Blocks;
                        btnFolder.Enabled = true;
                    }
                    ));
                }
                ));

                backupThread.IsBackground = false;
                backupThread.Name = "Inventory Backup";
                backupThread.Start();

            }
        }
Exemplo n.º 49
0
        public void Init2()
        {
            if (instance.MainForm.InvokeRequired)
            {
                instance.MainForm.BeginInvoke(new MethodInvoker(() => Init2()));
                return;
            }

            AddFolderFromStore(invRootNode, Inventory.RootFolder);

            sorter = new InvNodeSorter();

            if (!instance.GlobalSettings.ContainsKey("inv_sort_bydate"))
                instance.GlobalSettings["inv_sort_bydate"] = OSD.FromBoolean(true);
            if (!instance.GlobalSettings.ContainsKey("inv_sort_sysfirst"))
                instance.GlobalSettings["inv_sort_sysfirst"] = OSD.FromBoolean(true);

            sorter.ByDate = instance.GlobalSettings["inv_sort_bydate"].AsBoolean();
            sorter.SystemFoldersFirst = instance.GlobalSettings["inv_sort_sysfirst"].AsBoolean();

            tbtnSortByDate.Checked = sorter.ByDate;
            tbtbSortByName.Checked = !sorter.ByDate;
            tbtnSystemFoldersFirst.Checked = sorter.SystemFoldersFirst;

            invTree.TreeViewNodeSorter = sorter;

            if (instance.MonoRuntime)
            {
                invTree.BackColor = Color.FromKnownColor(KnownColor.Window);
                invTree.ForeColor = invTree.LineColor = Color.FromKnownColor(KnownColor.WindowText);
                InventoryFolder f = new InventoryFolder(UUID.Random());
                f.Name = "";
                f.ParentUUID = UUID.Zero;
                f.PreferredType = AssetType.Unknown;
                TreeNode dirNode = new TreeNode();
                dirNode.Name = f.UUID.ToString();
                dirNode.Text = f.Name;
                dirNode.Tag = f;
                dirNode.ImageIndex = GetDirImageIndex(f.PreferredType.ToString().ToLower());
                dirNode.SelectedImageIndex = dirNode.ImageIndex;
                invTree.Nodes.Add(dirNode);
                invTree.Sort();
            }

            saveAllTToolStripMenuItem.Enabled = false;
            InventoryUpdate = new Thread(new ThreadStart(StartTraverseNodes));
            InventoryUpdate.Name = "InventoryUpdate";
            InventoryUpdate.IsBackground = true;
            InventoryUpdate.Start();

            invRootNode.Expand();

            invTree.AfterExpand += new TreeViewEventHandler(TreeView_AfterExpand);
            invTree.NodeMouseClick += new TreeNodeMouseClickEventHandler(invTree_MouseClick);
            invTree.NodeMouseDoubleClick += new TreeNodeMouseClickEventHandler(invTree_NodeMouseDoubleClick);

            _EditTimer = new System.Threading.Timer(OnLabelEditTimer, null, System.Threading.Timeout.Infinite, System.Threading.Timeout.Infinite);

            // Callbacks
            Inventory.InventoryObjectAdded += new EventHandler<InventoryObjectAddedEventArgs>(Inventory_InventoryObjectAdded);
            Inventory.InventoryObjectUpdated += new EventHandler<InventoryObjectUpdatedEventArgs>(Inventory_InventoryObjectUpdated);
            Inventory.InventoryObjectRemoved += new EventHandler<InventoryObjectRemovedEventArgs>(Inventory_InventoryObjectRemoved);

            client.Objects.ObjectUpdate += new EventHandler<PrimEventArgs>(Objects_AttachmentUpdate);
            client.Objects.KillObject += new EventHandler<KillObjectEventArgs>(Objects_KillObject);
            client.Appearance.AppearanceSet += new EventHandler<AppearanceSetEventArgs>(Appearance_AppearanceSet);
        }
Exemplo n.º 50
0
        void BtnExportClick(object sender, EventArgs e)
        {
            this.Enabled = false;
            Exporter.LogMessage = LogMessage;

            Thread t = new Thread(new System.Threading.ThreadStart(delegate()
            {
                try
                {
                    Exporter.ExportToFile(txtFileName.Text,uLocalID);
                    LogMessage("Export Successful.");
                    if (InvokeRequired)
                    {
                        BeginInvoke(new MethodInvoker(() => this.Enabled = true));
                    }
                }
                catch (Exception ex)
                {
                    LogMessage("Export failed.  Reason: {0}",ex.Message);
                }
            }));

            t.IsBackground = true;
            t.Start();
        }
Exemplo n.º 51
0
 public void StartThinking()
 {
     if (avatarThinkerThread == null)
     {
         avatarThinkerThread = new Thread(Think) { Name = String.Format("AvatarThinkerThread for {0}", ObservedActor) };
         if (ObservedActor.IsControllable)
         {
             ///  only think for ourselves
             avatarThinkerThread.Priority = ThreadPriority.Normal;
             avatarThinkerThread.Start();
         }
     }
     else if (!avatarThinkerThread.IsAlive) avatarThinkerThread.Resume();
 }
Exemplo n.º 52
0
 private void StartFailoverThread()
 {
     Thread failoverThread = new Thread(new ThreadStart(_failoverHandler.Run));
     failoverThread.Name = "Failover";
     // Do not inherit daemon-ness from current thread as this can be a daemon
     // thread such as a AnonymousIoService thread.
     failoverThread.IsBackground = false;
     failoverThread.Start();
 }
Exemplo n.º 53
0
        public void Execute(string threadCmd, string[] cmdArgs, ConsoleWriteLine WriteLine)
        {
            string args = String.Join(" ", cmdArgs);
            if (threadCmd == "kill")
            {
                if (_listed == null)
                {
                    WriteLine("Must load the threadlist Using: thread");
                    return;
                }
                lock (_listed)
                {
                    if (_listed.Count == 0)
                    {
                        WriteLine("No threaded commands to kill.");
                    }
                    else
                    {
                        WriteLine("Killing all threaded commands");
                        int found = 0;
                        foreach (var cmd in _listed)
                        {
                            try
                            {
                                if (cmd.IsAlive)
                                {
                                    found++;
                                    cmd.Abort();
                                }
                            }
                            catch (Exception)
                            {
                            }
                        }
                        WriteLine("Killed {0} thread{1}.", found, found == 1 ? "" : "s");
                        _listed = null;

                    }
                }
                lock (_commandQueue)
                {
                    int commandQueueCount = _commandQueue.Count;
                    if (commandQueueCount == 0)
                    {
                        WriteLine("No queued commands.");
                    }
                    else
                    {
                        _commandQueue.Clear();
                        WriteLine("Clear queued commands: " + commandQueueCount);
                    }
                }
                return;
            }

            //cleared each time becasue the list will change
            _listed = null;
            if (args == string.Empty)
            {
                lock (_commandThreads) _listed = new List<Thread>(_commandThreads);
                if (_listed.Count == 0)
                {
                    WriteLine("No threaded commands.");
                }
                else
                {
                    int found = _listed.Count;
                    WriteLine("Listing {0} thread{1}.", found, found == 1 ? "" : "s");
                    for (int i = 0; i < _listed.Count; i++)
                    {
                        WriteLine(" * {0}: {1}", i, _listed[i].Name);
                    }
                }
                lock (_commandQueue)
                {
                    if (_commandQueue.Count == 0)
                    {
                        WriteLine("No queued commands.");
                    }
                    else
                    {
                        WriteLine("Queued commands: {0}", _commandQueue.Count);
                        foreach (var c in _commandQueue)
                        {
                            WriteLine(" Q: {0}", c.Key);
                        }
                    }
                }
                return;
            }
            string name = string.Format("ThreadCommand {0}: {1}", DateTime.Now, args);
            Thread thread = new Thread(() =>
                                           {
                                               try
                                               {
                                                   WriteLine("Started command: {0}", args);
                                                   instance.CommandsManager.ExecuteCommandForeground(WriteLine, args);
                                               }
                                               catch (Exception e)
                                               {
                                                   WriteLine("Exception: " + name + "\n" + e);
                                               }
                                               finally
                                               {
                                                   WriteLine("Done with {0}", args);
                                                   _commandThreads.Remove(Thread.CurrentThread);
                                               }
                                           }) {Name = name};
            lock (_commandThreads) _commandThreads.Add(thread);
            thread.Start();
        }
Exemplo n.º 54
0
 internal void Start()
 {
     _dispatcher = new Dispatcher(this);
     Thread dispatcherThread = new Thread(new ThreadStart(_dispatcher.RunDispatcher));
     dispatcherThread.IsBackground = true;
     dispatcherThread.Start();
 }
Exemplo n.º 55
0
 /// <summary>
 /// runs in a STA thread (by creating one)  Does not "join"
 /// </summary>
 /// <param name="args"></param>        
 public static void RunInThread(ApartmentState must, ThreadStart runMain, bool blocking)
 {
     if (!blocking || Thread.CurrentThread.ApartmentState != must)
     {
         Thread newThread = new Thread(runMain);
         newThread.SetApartmentState(must);
         newThread.Start();
         if (blocking) newThread.Join();
         return;
     }
     else
     {
         runMain();
     }
 }
Exemplo n.º 56
0
        private void EnsureTrackerRunning()
        {
            lock (TrackerLoopLock)
            {
                if (ApproachThread == null || !ApproachThread.IsAlive)
                {
                    WorldSystem.SetSimAvatar(this);
                    ApproachThread = new Thread(TrackerLoop);
                    ApproachThread.Name = "TrackerLoop for " + Client;
                    ApproachThread.Priority = System.Threading.ThreadPriority.Normal;
                    ApproachThread.IsBackground = true;
                    //Client.Self.Movement.UseOnlyThreads.Add(ApproachThread);
                    ApproachThread.Start();

                    Client.Network.RegisterCallback(PacketType.AlertMessage, AlertMessageHandler);
                }
            }
        }
Exemplo n.º 57
0
        public static void ImportFromFile(GridClient client)
        {
            WindowWrapper mainWindow = new WindowWrapper(frmMain.ActiveForm.Handle);
            System.Windows.Forms.OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "Open object file";
            dlg.Filter = "XML file (*.xml)|*.xml";
            dlg.Multiselect = false;
            DialogResult res = dlg.ShowDialog();

            if (res == DialogResult.OK)
            {

                Thread t = new Thread(new System.Threading.ThreadStart(delegate()
                {
                    try
                    {
                        PrimDeserializer d = new PrimDeserializer(client);
                        string primsXmls = System.IO.File.ReadAllText(dlg.FileName);
                        d.CreateObjectFromXml(primsXmls);
                        d.CleanUp();
                        d = null;
                        MessageBox.Show(mainWindow, "Successfully imported " + dlg.FileName, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (Exception excp)
                    {
                        MessageBox.Show(mainWindow, excp.Message, "Saving failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }));

                t.IsBackground = true;
                t.Start();

            }
        }
Exemplo n.º 58
0
        private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (statusTimer != null)
            {
                statusTimer.Stop();
                statusTimer.Dispose();
                statusTimer = null;
            }

            if (mediaConsole != null)
            {
                if (tabsConsole.TabExists("media"))
                {
                    tabsConsole.Tabs["media"].AllowClose = true;
                    tabsConsole.Tabs["media"].Close();
                }
                else
                {
                    mediaConsole.Dispose();
                }
                mediaConsole = null;
            }

            if (netcom.IsLoggedIn)
            {
                Thread saveInvToDisk = new Thread(new ThreadStart(
                    delegate()
                    {
                        client.Inventory.Store.SaveToDisk(instance.InventoryCacheFileName);
                    }));
                saveInvToDisk.Name = "Save inventory to disk";
                saveInvToDisk.Start();

                netcom.Logout();
            }
        }
Exemplo n.º 59
0
        private void btnSave_Click(object sender, EventArgs e)
        {
            WindowWrapper mainWindow = new WindowWrapper(frmMain.ActiveForm.Handle);
            System.Windows.Forms.SaveFileDialog dlg = new SaveFileDialog();
            dlg.AddExtension = true;
            dlg.RestoreDirectory = true;
            dlg.Title = "Save object as...";
            dlg.Filter = "XML file (*.xml)|*.xml";
            DialogResult res = dlg.ShowDialog();

            if (res == DialogResult.OK)
            {
                Thread t = new Thread(new ThreadStart(delegate()
                    {
                        try
                        {
                            PrimSerializer s = new PrimSerializer(client);
                            string primsXmls = s.GetSerializedAttachmentPrims(client.Network.CurrentSim, attachment.LocalID);
                            System.IO.File.WriteAllText(dlg.FileName, primsXmls);
                            s.CleanUp();
                            s = null;
                            MessageBox.Show(mainWindow, "Successfully saved " + dlg.FileName, "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                        catch (Exception excp)
                        {
                            MessageBox.Show(mainWindow, excp.Message, "Saving failed", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                ));
                t.IsBackground = true;
                t.Start();
            }
        }
Exemplo n.º 60
0
        ///Configuration config;

        public void startSocketListener()
        {
            // The thread that accepts the Client and awaits messages

            int maxRebinds = 10;
            this.Bound = TryBind(ServerPort);
            while (maxRebinds > 0 && !this.Bound)
            {
                ServerPort = ServerPort + ServerPortIncr;
                this.Bound = TryBind(ServerPort);
                maxRebinds--;
            }
            if (!Bound)
            {
                WriteLine("Gave up on TCPServer");
                return;
            }
            else
            {
                WriteLine("Realy bound " + ServerPort + "!");
            }
            thrSvr = new Thread(tcpSrv);
            thrSvr.Name = ToString();
            // The thread calls the tcpSvr() method=
            thrSvr.Start();



        }