User Tag List

Results 1 to 3 of 3

Thread: [VB.NET][C#] Multi-thread / Crossthreading Example

  1. #1
    [VB.NET][C#] Multi-thread / Crossthreading Example

    User Info Menu

    [VB.NET][C#] Multi-thread / Crossthreading Example

    Someone was asking how to do multi-threading in the shoutbox and my original example didn't work because of cross-threads. This basically means I couldn't set the value of a control within a thread since it's considered a different process. Well I did manage to get it to work and I figured I'd post the code here. I will also include the source code both both the VB.net and C# versions below.

    VB

    Code:
    Imports System.Threading
    Public Class Form1
    
        Dim Max As Double = 600000
        Dim i As Integer = 0
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ProgressBar1.Maximum = Max
            Dim threadFill As Thread = New Thread(AddressOf Thread_FillProgressbar)
            threadFill.Start()
        End Sub
    
    
        Private Sub Thread_FillProgressbar()
    
            For i = 0 To Max
                AccessControl()
            Next
        End Sub
    
        Private Sub AccessControl()
            If Me.InvokeRequired Then
                Me.Invoke(New MethodInvoker(AddressOf AccessControl))
            Else
    
    
                ProgressBar1.Value = i
                ShowInTaskbar = True
            End If
        End Sub
    End Class
    C#

    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 CSharp_multithreading
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            int Max = 60000;
            int i = 0;
            private void Form1_Load(object sender, EventArgs e)
            {
                progressBar1.Maximum = Max;
                Thread threadFill = new Thread(Thread_FillProgressBar);
                threadFill.Start();
            }
    
            private void Thread_FillProgressBar()
            {
                for (i = 0; i <= Max; i++)
                {
                    accessControl();
                }
            }
    
            private void accessControl()
            {
                if (InvokeRequired)
                {
    
                    Invoke(new MethodInvoker(accessControl));
    
                }
                else
                {
                    progressBar1.Value = i;
                    ShowInTaskbar = true;
    
                }
    
    
    
            }
        }
    }

    VB.NET Source

    C# Source

  2. #2
    [VB.NET][C#] Multi-thread / Crossthreading Example

    User Info Menu

    Re: [VB.NET][C#] Multi-thread / Crossthreading Example

    What Language is that?

  3. #3
    [VB.NET][C#] Multi-thread / Crossthreading Example

    User Info Menu

    Re: [VB.NET][C#] Multi-thread / Crossthreading Example

    Quote Originally Posted by RSSTrace View Post
    What Language is that?
    He says it in the post, bro.

    Top is Visual Basic, bottom is C#

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •