Multithreading

Salam. Kim mənə C#-da Multithreading-i izah edə bilər? Yəni nümunələrlə hansı ki bunu öz layihəsində tətbiq edib.


Yadda saxlama
Kateqoriya: Proqramlaşdırma . . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (7 cavab var)

(15:24, 02/06/2011 ) #2679

sual və sualın başlığı sehv gedib. “Kim mənə C#-da Multithreading-i izah edə bilər? yəni nümunələrlə hansı ki bunu öz layihəsində tətbiq edib” belə olmalı idi

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(20:28, 04/06/2011 ) #2703

Salam. Multithreading proqramlaşdırma bir neçə əməliyyatı yerinə yetirməyə imkan verir, yəni bütün əməliyyatlar bir yerdə icra olunanda form ilişmir. Bu prosessorun 1 saniyədə standart olaraq qəbul olunan 20 millisaniyə fasilə verməsi hesabına baş verir. Nümunəni istəyinizə əsasən C#-da yazdım. amma kiməsə lazım olsa VB.NET-də də bunu yaza bilərəm

Forma 4 ədəd button qoyun, hər bir button üçün 100000 dövr quracağıq və bunlar buttonların text-lərinə yazılacaq. Ayrı-ayrı 4 buttonda əməliyyat getməyinə baxmayaraq form ilişməyəcək.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{

Thread multi1, multi2, multi3, multi4;

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;
}

private void button1_Click(object sender, EventArgs e)
{

multi1 = new Thread(new ThreadStart (hesabat1));
multi1.SetApartmentState(ApartmentState.STA);
multi1.Start();
}

private void button2_Click(object sender, EventArgs e)
{
multi2 = new Thread(new ThreadStart(hesabat2));
multi2.SetApartmentState(ApartmentState.STA);
multi2.Start();
}

private void button3_Click(object sender, EventArgs e)
{
multi3 = new Thread(new ThreadStart(hesabat3));
multi3.SetApartmentState(ApartmentState.STA);
multi3.Start();
}

private void button4_Click(object sender, EventArgs e)
{
multi4 = new Thread(new ThreadStart(hesabat4));
multi4.SetApartmentState(ApartmentState.STA);
multi4.Start();
}

private void hesabat1()
{
for (int i = 0; i < 100000; i++)
{
this.button1.Text = Convert.ToString(i);
Thread.Sleep(1);
}
multi1.Abort();
}

private void hesabat2()
{
for (int i = 0; i < 100000; i++)
{
this.button2.Text = Convert.ToString(i);
Thread.Sleep(1);
}
multi2.Abort();
}

private void hesabat3()
{
for (int i = 0; i < 100000; i++)
{
this.button3.Text = Convert.ToString(i);
Thread.Sleep(1);
}
multi3.Abort();
}

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(20:32, 04/06/2011 ) #2704

Salam. Multithreading proqramlaşdırma bir neçə əməliyyatı yerinə yetirməyə imkan verir, yəni bütün əməliyyatlar bir yerdə icra olunanda form ilişmir. Bu prosessorun 1 saniyədə standart olaraq qəbul olunan 20 millisaniyə fasilə verməsi hesabına baş verir. Nümunəni istəyinizə əsasən C#-da yazdım. amma kiməsə lazım olsa VB.NET-də də bunu yaza bilərəm

Forma 4 ədəd button qoyun, hər bir button üçün 100000 dövr quracağıq və bunlar buttonların text-lərinə yazılacaq. Ayrı-ayrı 4 buttonda əməliyyat getməyinə baxmayaraq form ilişməyəcək.



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {

        Thread multi1, multi2, multi3, multi4;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            multi1 = new Thread(new ThreadStart (hesabat1));
            multi1.SetApartmentState(ApartmentState.STA);
            multi1.Start();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            multi2 = new Thread(new ThreadStart(hesabat2));
            multi2.SetApartmentState(ApartmentState.STA);
            multi2.Start();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            multi3 = new Thread(new ThreadStart(hesabat3));
            multi3.SetApartmentState(ApartmentState.STA);
            multi3.Start();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            multi4 = new Thread(new ThreadStart(hesabat4));
            multi4.SetApartmentState(ApartmentState.STA);
            multi4.Start();
        }

        private void hesabat1()
        {
            for (int i = 0; i < 100000; i++)
            {
                this.button1.Text = Convert.ToString(i);
                Thread.Sleep(1);
            }
            multi1.Abort();
        }

        private void hesabat2()
        {
            for (int i = 0; i < 100000; i++)
            {
                this.button2.Text = Convert.ToString(i);
                Thread.Sleep(1);
            }
            multi2.Abort();
        }

        private void hesabat3()
        {
            for (int i = 0; i < 100000; i++)
            {
                this.button3.Text = Convert.ToString(i);
                Thread.Sleep(1);
            }
            multi3.Abort();
        }


Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(17:10, 05/06/2011 ) #2706

cox sag olun. close buttonunu passiv olmasi proqraminada goresen mutithrewad elva edib duzeltmek olar?

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(12:40, 08/06/2011 ) #2722

Təkcə close buttonunu passiv edən proqram funksiya kimi yazıldığından onun Multithreading – ə heç bir dəxli yoxdur və ümumiyyətlə aktiv və ya passiv edən buttonu da Multithreadingda yazmağa ehtiyac yoxdur, bu system o zaman tətbiq olunur ki proses çox gedir və proses qurtarana qədər formun ilişməsinin qarşısını almaq vacib olur, amma close buttonunun aktiv və ya passiv edilməsi üçün 1 saniyədən də az vaxt lazımdır. yəni ehtiyac yoxdur.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(15:15, 08/06/2011 ) #2723

he bilirem cox sag olun. ama orda DLL tapanda ya nedece proqram cox ilisir.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(07:36, 12/06/2011 ) #2752

DLL variantı olmayan kodlar da var, VB.NET-də birini tapmışam lap superdir

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

Emil Imanov cavab verdi - Rus dilindən mətni tərcümə etmək (51 dəqiqə əvvəl)

Software Developer cavab verdi - Payoneer kartdan pul çıxartdıqda vergi (1 gün əvvəl)

Software Developer cavab verdi - Wise vasitəsilə bank kartına pul köçürmə (5 gün əvvəl)

Software Developer cavab verdi - Rus dilindən mətni tərcümə etmək (6 gün əvvəl)

Cənab cavab verdi - Almanca söz bazası yığmaq (9 gün əvvəl)

rdrobert cavab verdi - Mikrofon süngərinə yazı (10 gün əvvəl)

rdrobert cavab verdi - Yerli virtual olaraq dost tapmaq platforması (10 gün əvvəl)

rdrobert cavab verdi - Almanca söz bazası yığmaq (10 gün əvvəl)

rdrobert cavab verdi - Playstation 4 almaq, Playsation klub açmaq (10 gün əvvəl)

rdrobert cavab verdi - Proqramistin ixtsasi hansidir? (10 gün əvvəl)

Software Developer cavab verdi - Azercell Kabinetim aplikasiyasında İstəSən tarifi haqqında (11 gün əvvəl)

Software Developer cavab verdi - Proqramistin ixtsasi hansidir? (12 gün əvvəl)

byshako cavab verdi - Google Azərbaycan nömrələrini qəbul etmir (22 gün əvvəl)

rdrobert cavab verdi - Honeygain, passiv gelir (23 gün əvvəl)

rdrobert cavab verdi - Xaricdən telefon getirmek (23 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 607 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23237 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2024