Citat:
Cross-thread operation not valid: Control '' accessed from a thread other than the thread it was created on.
Sve radi kako treba ali program se ponasha kao da nije multithread i ako u pozadini navodno radi BackgroundWorker.

Code:
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
button1.Text = "Code Text";
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
button1.Text = "DeCode Text";
}
delegate void DoIt();
public void Work()
{
if (!richTextBox1.InvokeRequired)
{
Form1.ActiveForm.Text += " Working please wait ...";
string str = richTextBox1.Text;
richTextBox1.Text = "";
CharEnumerator enu = str.GetEnumerator();
while (enu.MoveNext())
{
if (radioButton1.Checked)
{
int c = (int)enu.Current + 13;
richTextBox1.Text += String.Concat(Convert.ToChar(c));
richTextBox1.Refresh();
//richTextBox1.ScrollToCaret();
}
else if (radioButton2.Checked)
{
int c = (int)enu.Current - 13;
richTextBox1.Text += String.Concat(Convert.ToChar(c));
richTextBox1.Refresh();
//richTextBox1.ScrollToCaret();
}
}
}
else
{
Invoke(new DoIt(Work));
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Work();
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Form1.ActiveForm.Text = "Enc13";
MessageBox.Show("Work completed !", "Enc13");
}
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
button1.Text = "Code Text";
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
button1.Text = "DeCode Text";
}
delegate void DoIt();
public void Work()
{
if (!richTextBox1.InvokeRequired)
{
Form1.ActiveForm.Text += " Working please wait ...";
string str = richTextBox1.Text;
richTextBox1.Text = "";
CharEnumerator enu = str.GetEnumerator();
while (enu.MoveNext())
{
if (radioButton1.Checked)
{
int c = (int)enu.Current + 13;
richTextBox1.Text += String.Concat(Convert.ToChar(c));
richTextBox1.Refresh();
//richTextBox1.ScrollToCaret();
}
else if (radioButton2.Checked)
{
int c = (int)enu.Current - 13;
richTextBox1.Text += String.Concat(Convert.ToChar(c));
richTextBox1.Refresh();
//richTextBox1.ScrollToCaret();
}
}
}
else
{
Invoke(new DoIt(Work));
}
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
Work();
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Form1.ActiveForm.Text = "Enc13";
MessageBox.Show("Work completed !", "Enc13");
}
Evo ga kod pa vidite ako shta nije u redu i gde greshim.Da pojasnim josh jednom, sve shto hocju je da kada recimo procesuira dug tekst da mogu program nesmetano da pomeram i da klikcjem dugmicje, shto u ovom gore kodu ne mogu

if(torrent == "free" && windows == true)
{
InstallOnComputer(Expensive_Software);
}
else goto Linux;
{
InstallOnComputer(Expensive_Software);
}
else goto Linux;