我有兩句話:
來源:約翰
的ConvertTo:傑克C#文本區別
,我想顯示轉換,從「源」的所有文字,同時影響到了「的ConvertTo」字。我已經創建了一個程序來完成這個任務,但是一次只能處理一個字母,以顯示我使用線程的效果,問題是要在同一時間處理所有字母,我想每個字母都需要一個線程,並且每個線程都會調用處理該字母的相同函數,並使用全局變量。
下面是代碼(僅適用於具有相同lenght文本):
private void button1_Click(object sender, EventArgs e)
{
lblResult.Text = "";
lblResult2.Text = "";
ThreadPool.QueueUserWorkItem(new WaitCallback(Process));
}
int movement = 0;
string CumulateText;
private void Process(object stateinfo)
{
int value;
int operation; //0->[+] 1->[-]
CumulateText = "";
for (int i = 0; i <= textBox1.Text.Length - 1; i++)
{
if (textBox1.Text[i] != ' ')
{
value = (char)textBox1.Text[i] - (char)textBox2.Text[i];
if (value >= 0)
operation = 1;
else
operation = 0;
for (int ii = 0; ii <= Math.Abs(value); ii++)
{
if (operation == 1)
movement = (char)textBox1.Text[i] - ii;
else
movement = (char)textBox1.Text[i] + ii;
this.Invoke(new EventHandler(ShowMovement));
System.Threading.Thread.Sleep(10);
}
}
CumulateText += textBox2.Text[i].ToString();
}
}
private void ShowMovement(object sender, EventArgs e)
{
lblResult.Text = CumulateText + Convert.ToString((char)movement);
}
我希望我自己的理解。 請任何建議來完成。 感謝
爲了澄清更多的我想在這裏完成的是一個例子:
來源:約翰
的ConvertTo:傑克
的J - 同Ĵ
Ø - 減少至一(O,N,M ,...,A)
ħ - 減少直到C(H,G,F,...,C)
N - 減少直到K(N,M,L,K)
「我想顯示轉換的所有字母效應‘源’在同一時間到‘的ConvertTo’字」 - 對不起,我無法理解你。請澄清。 – 2011-06-21 17:10:06
這是功課嗎? –
字符串是不可變的,你不能在一個字符串中同時替換多個字母,你必須刪除舊的字符串,並且每次都替換一個新的字符串。如果你想通過魔術般的替換它們來避免這種情況,你應該使用一個Stringbuilder,然後按順序執行它。 – MrFox