DLL variantı olmayan kodlar da var, VB.NET-də birini tapmışam lap superdir
he bilirem cox sag olun. ama orda DLL tapanda ya nedece proqram cox ilisir.
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.
cox sag olun. close buttonunu passiv olmasi proqraminada goresen mutithrewad elva edib duzeltmek olar?
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.
[code]
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();
}
[/code]
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();
}
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