مضى على الشبكة و يوم من العطاء.
  • السلام عليكم ورحمة الله وبركاته، نرجوا كتابة طلبك او سؤالك باللغة العربية مع ارفاق صورة عن الخطأ او توضيح كافي للمشكلة.

[ غير مُجاب ] تشغيل عمليتين في نفس الوقت (باستخدام لغة #c وويندوز فورم)

OOP BIO

./عضو جديد

السمعة:

كيف حالكم يا أخوة, أريد المساعدة في البرنامج المكتوب مثل في الأسفل بحيث يمكن تشغيل وظيفتين في وقت واحد وطبعًا هي ملفات صوتية
حيث أريد تشغيل -> ()Player.Player() -and- Player1.Player <- ويكون تشغيل الصوتين في نفس الوقت باستخدام الويندوز فورم

حاولت البحث في الإنترنت ولم أجد شيء مًشابه للفكرة المطروحة أتمنى الإفادة...


C#:
        IWavePlayer Player = new WaveOut();
        AudioFileReader AFR;
        IWavePlayer Player1 = new WaveOut();
        AudioFileReader AFR1;
        string[] ListAudio;

  private void MultiSound_Click(object sender, EventArgs e)
        {
 
            ListAudio = null;
            var di = new OpenFileDialog();
            di.Filter = "MP3 Files|*.mp3";
            di.Multiselect = true;
            var rs = di.ShowDialog();
            if (rs == DialogResult.OK)
            {
                ListAudio = di.FileNames;


                    AFR = new AudioFileReader(ListAudio[0]);
                    Player.Init(AFR);
                    Player.Play();

                    AFR1 = new AudioFileReader(ListAudio[1]);
                    Player1.Init(AFR1);
                    Player1.Play();
            }
        }
 
  • Like
التفاعلات: STORM
C#:
        IWavePlayer Player = new WaveOut();
        AudioFileReader AFR;
        IWavePlayer Player1 = new WaveOut();
        AudioFileReader AFR1;
        string[] ListAudio;

  private void MultiSound_Click(object sender, EventArgs e)
        {
 
            ListAudio = null;
            var di = new OpenFileDialog();
            di.Filter = "MP3 Files|*.mp3";
            di.Multiselect = true;
            var rs = di.ShowDialog();
            if (rs == DialogResult.OK)
            {
                ListAudio = di.FileNames;


                    AFR = new AudioFileReader(ListAudio[0]);
                    Player.Init(AFR);
                    Player.Play();

                    AFR1 = new AudioFileReader(ListAudio[1]);
                    Player1.Init(AFR1);
                    Player1.Play();
            }
        }

كيف حالكم يأخوة أريد مساعدة في البرنامج المكتوب مثل ماهو في الاعلى بحيث يمكن تشغيل أثنتين من الوظائف في وقت واحد وطبعا هي ملفات صوتية
بحيث تشغيل -> ()Player.Player() -and- Player1.Player <- ويكون تشغيل الصوتين في نفس الوقت ... طبعا بأستخدام الويندوز فورم

حاولت البحث في الأنترنت ولم أجد شئ مشابهة للفكرة المطروحة اتمنى الافادة...
ابحث عن ال threads using windows form
 
بتقدر تستخدم الخيوط الحاسوبية Threads بتخليك تشغل اكثر من دالة او وظيفة بنفس الوقت وهاي الThreads موجودة باغلب اللغات ,
وانا ما عندي معرفه بلغة #C بس جربت سؤالك على ChatGPT وهاي النتيجة :
=============================================================
لتشغيل عمليتين في نفس الوقت في تطبيق Windows Forms باستخدام C#، يمكنك استخدام ميزة التعددية (Multithreading) في اللغة. هذا يسمح لك بتنفيذ عمليات متعددة في نفس الوقت دون تجميد واجهة المستخدم. هناك عدة طرق لتحقيق ذلك، وسأوضح لك واحدة منها باستخدام الـ Threads.

في المثال التالي، سنقوم بإنشاء وتشغيل عمليتين في نفس الوقت باستخدام Threads:
C#:
using System;
using System.Threading;
using System.Windows.Forms;

namespace MultithreadingExample
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Start two threads when the form loads
            Thread thread1 = new Thread(new ThreadStart(Thread1Function));
            Thread thread2 = new Thread(new ThreadStart(Thread2Function));

            thread1.Start();
            thread2.Start();
        }

        // Function to be executed by the first thread
        private void Thread1Function()
        {
            for (int i = 0; i < 10; i++)
            {
                // Simulate some work
                Thread.Sleep(1000);

                // Update UI (invoke because we're on a different thread)
                Invoke(new Action(() =>
                {
                    textBox1.Text += "Thread 1: " + i.ToString() + Environment.NewLine;
                }));
            }
        }

        // Function to be executed by the second thread
        private void Thread2Function()
        {
            for (int i = 0; i < 10; i++)
            {
                // Simulate some work
                Thread.Sleep(1500);

                // Update UI (invoke because we're on a different thread)
                Invoke(new Action(() =>
                {
                    textBox2.Text += "Thread 2: " + i.ToString() + Environment.NewLine;
                }));
            }
        }
    }
}

في هذا المثال، قمنا بإنشاء دالتين Thread1Function و Thread2Function تقوم كل منهما بتنفيذ عملياتها في خيط منفصل. ثم بدأنا تنفيذ الخيوط باستخدام thread1.Start() و thread2.Start().

تأكد من استخدام Invoke لتحديث عناصر واجهة المستخدم (مثل textBox1 و textBox2) لأنها يجب أن تتم على نفس الخيط الذي أنشأت عليه عناصر واجهة المستخدم.

لاحظ أن هذا مثال بسيط، وقد تحتاج إلى التعديل على الكود ليتناسب مع احتياجات تطبيقك الفعلية.
 
كيف حالكم يا أخوة, أريد المساعدة في البرنامج المكتوب مثل في الأسفل بحيث يمكن تشغيل وظيفتين في وقت واحد وطبعًا هي ملفات صوتية
حيث أريد تشغيل -> ()Player.Player() -and- Player1.Player <- ويكون تشغيل الصوتين في نفس الوقت باستخدام الويندوز فورم

حاولت البحث في الإنترنت ولم أجد شيء مًشابه للفكرة المطروحة أتمنى الإفادة...


C#:
        IWavePlayer Player = new WaveOut();
        AudioFileReader AFR;
        IWavePlayer Player1 = new WaveOut();
        AudioFileReader AFR1;
        string[] ListAudio;

  private void MultiSound_Click(object sender, EventArgs e)
        {
 
            ListAudio = null;
            var di = new OpenFileDialog();
            di.Filter = "MP3 Files|*.mp3";
            di.Multiselect = true;
            var rs = di.ShowDialog();
            if (rs == DialogResult.OK)
            {
                ListAudio = di.FileNames;


                    AFR = new AudioFileReader(ListAudio[0]);
                    Player.Init(AFR);
                    Player.Play();

                    AFR1 = new AudioFileReader(ListAudio[1]);
                    Player1.Init(AFR1);
                    Player1.Play();
            }
        }
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى