Пример #1
0
        // TODO: сделать механизм завершения потока при закрытии.
        // проблема актуальна только если закрывать окно до полной загрузки карты
        // и приводит к тому что процесс закрывается не сразу, и может выдавать ошибки.
        public static void DoImageLoadingWork(object obj)
        {
            ThreadStartParams thread_params = (ThreadStartParams)obj;
            Form1 form = thread_params.form;

            {
                foreach (FileInfo file_info in thread_params.files)
                {
                    try
                    {
                        using (Bitmap bitmap = DevIL.DevIL.LoadBitmap(file_info.file_name))
                        {
                            Bitmap converted_image = bitmap.Clone(
                                new Rectangle(0, 0, bitmap.Width, bitmap.Height),
                                System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

                            myMethodDelegate myD1 = new myMethodDelegate(form.UpdateImage);

                            object[] b = new object[] { file_info.x, file_info.y, converted_image };
                            form.Invoke(myD1, b);
                        }
                    }
                    catch {}
                }
            }
        }
Пример #2
0
    private int Run()
    {
        MyDelClass mdc = new MyDelClass();
        myMethodDelegate md1 = new myMethodDelegate(mdc.Show);

        Thread t = new Thread(new ParameterizedThreadStart(ThreadWorker));
        t.Start(md1);
        t.Join();
        Console.WriteLine(iSet.ToString() == num ? "Test Passed" : "Test Failed");
        return (iSet.ToString() == num ? 100 : -1);
    }
Пример #3
0
        public static void Main(string [] args)
        {
            mySampleClass mySC = new mySampleClass();
            myMethodDelegate myD1 = new myMethodDelegate(mySC.myStringMethod);
            myMethodDelegate myD2 = new myMethodDelegate(mySampleClass.mySignMethod);

            Console.WriteLine(myD1(1));
            Console.WriteLine(myD2(-1));

            // Invokes the delegates.
            Console.WriteLine("{0} is {1}; use the sign \"{2}\".", 5, myD1(5), myD2(5));
            Console.WriteLine("{0} is {1}; use the sign \"{2}\".", -3, myD1(-3), myD2(-3));
            Console.WriteLine("{0} is {1}; use the sign \"{2}\".", 0, myD1(0), myD2(0));
        }