C#string Thread.Sleep()
嗨,我现在正在使用Thread.Sleep(200);在文本之间,它看起来像旧的口袋妖怪游戏,文本不是一下子出现的,而是像这样逐字逐句地有点滞后C#string Thread.Sleep(),c#,string,alias,C#,String,Alias,嗨,我现在正在使用Thread.Sleep(200);在文本之间,它看起来像旧的口袋妖怪游戏,文本不是一下子出现的,而是像这样逐字逐句地有点滞后 Console.Write("help"); Thread.Sleep(200); Console.Write("me"); 我想知道您是否可以将线程.Sleep(200)命名为Ts200。(我想发短信)。所以它不太杂乱。 所以它是这样的,有一根绳子 string Ts200 Ts200 = Thread.Sleep(200) Console.Wri
Console.Write("help"); Thread.Sleep(200); Console.Write("me");
我想知道您是否可以将线程.Sleep(200)
命名为Ts200
。(我想发短信)。所以它不太杂乱。
所以它是这样的,有一根绳子
string Ts200
Ts200 = Thread.Sleep(200)
Console.Write("help"); Ts200; Console.Write("me")
但它不起作用
我得到这个错误:
无法将类型void隐式转换为字符串
如果您不介意()
在Ts200
之后使用lambda:
Action Ts200 = () => Thread.Sleep(200);
...
Ts200();
然而,即使它可能比Thread.Sleep(200)可读性差得多,这也是为什么不这么做的原因。如果你不介意()
在Ts200
之后尝试lambda:
Action Ts200 = () => Thread.Sleep(200);
...
Ts200();
然而,即使它可能比Thread.Sleep(200)可读性差得多,这也是为什么不这么做的原因。一种简单的方法是将字符串拆分成空格上的数组,然后循环
using System;
using System.Threading;
public static void slowType(string fullSentence, int millis_pause)
{
string[] words = fullSentence.Split(' ');
foreach(string s in words)
{
Console.Out.Write(s);
Thread.Sleep(millis_pause);
//we must reintroduce the space, since we were splitting on it.
Console.Out.Write(' ');
}
//optionally ; start a new line at the end of the sentence
Console.Out.Write("\r\n");
}
用法示例:
public static void Main()
{
string sentence = "i am a terribly slow typist";
slowType(sentence, 200);
}
一种简单的方法是
将字符串拆分为空格上的数组,然后在其上循环
using System;
using System.Threading;
public static void slowType(string fullSentence, int millis_pause)
{
string[] words = fullSentence.Split(' ');
foreach(string s in words)
{
Console.Out.Write(s);
Thread.Sleep(millis_pause);
//we must reintroduce the space, since we were splitting on it.
Console.Out.Write(' ');
}
//optionally ; start a new line at the end of the sentence
Console.Out.Write("\r\n");
}
用法示例:
public static void Main()
{
string sentence = "i am a terribly slow typist";
slowType(sentence, 200);
}
调用线程Sleep(200)代码>本身不包含任何值。因此,您不能返回任何值,也不能为其分配任何值,除非作为方法参数Thread.Sleep(“此处属于方法参数,此方法接受“int”值”)
。int
方法参数设置要暂停主线程的毫秒数
试着这样做:
main
方法是应用程序执行后的入口点。因此,当您启动应用程序时,可以调用main
方法并执行它
static void Main(string[] args)
{
string sentence = "Here you enter your sentence...";
string[] words = sentence.Split(' ');
OutputDelayedText(words);
}
string语句
是string
变量,其中包含要在控制台上输出的句子。因此,我们使用.split(“”)
方法将句子拆分为单个单词。这将在每个空格''
上拆分弹簧,并将单个单词放入字符串[]
数组中。请注意,您必须在.Split(“”)
方法中使用这些'
,而不是您可能使用的'
。这是因为该方法接受一个char
值,而那些'
值表示您只需将一个char作为方法参数
private static void OutputDelayedText(string[] myText)
{
foreach (var word in myText)
{
Console.Write(word + " ");
Thread.Sleep(200);
}
}
因此,最后我们调用OutputDelayedText()
方法,使用单词数组
作为方法参数
private static void OutputDelayedText(string[] myText)
{
foreach (var word in myText)
{
Console.Write(word + " ");
Thread.Sleep(200);
}
}
现在,我们使用一个foreach
循环来迭代数组,并将数组中的每个元素(句子中的一个单词)写在控制台的一行中。如果您不熟悉foreach
,也可以使用for
或while
循环
一般来说,我建议您使用Task.Delay()
。或者在WinForms的Backgroundworker
中,这些将允许您在不同的线程上工作,如果暂停这些线程,则不会暂停主线程。稍后您将遇到此问题,它用于暂停任何进程或在后台执行长任务,以便在任务仍在运行时不冻结GUI
然而只要从线程.Sleep()
开始,但要记住:在编程艺术中,有很多方法可以实现你的目标,你可能会在一个更好的解决方案上绊倒。你称之为线程.Sleep(200)代码>本身不包含任何值。因此,您不能返回任何值,也不能为其分配任何值,除非作为方法参数Thread.Sleep(“此处属于方法参数,此方法接受“int”值”)
。int
方法参数设置要暂停主线程的毫秒数
试着这样做:
main
方法是应用程序执行后的入口点。因此,当您启动应用程序时,可以调用main
方法并执行它
static void Main(string[] args)
{
string sentence = "Here you enter your sentence...";
string[] words = sentence.Split(' ');
OutputDelayedText(words);
}
string语句
是string
变量,其中包含要在控制台上输出的句子。因此,我们使用.split(“”)
方法将句子拆分为单个单词。这将在每个空格''
上拆分弹簧,并将单个单词放入字符串[]
数组中。请注意,您必须在.Split(“”)
方法中使用这些'
,而不是您可能使用的'
。这是因为该方法接受一个char
值,而那些'
值表示您只需将一个char作为方法参数
private static void OutputDelayedText(string[] myText)
{
foreach (var word in myText)
{
Console.Write(word + " ");
Thread.Sleep(200);
}
}
因此,最后我们调用OutputDelayedText()
方法,使用单词数组
作为方法参数
private static void OutputDelayedText(string[] myText)
{
foreach (var word in myText)
{
Console.Write(word + " ");
Thread.Sleep(200);
}
}
现在,我们使用一个foreach
循环来迭代数组,并将数组中的每个元素(句子中的一个单词)写在控制台的一行中。如果您不熟悉foreach
,也可以使用for
或while
循环
一般来说,我建议您使用Task.Delay()
。或者在WinForms的Backgroundworker
中,这些将允许您在不同的线程上工作,如果暂停这些线程,则不会暂停主线程。稍后您将遇到此问题,它用于暂停任何进程或在后台执行长任务,以便在任务仍在运行时不冻结GUI
然而只需从Thread.Sleep()
开始,但请记住:在编程艺术中,有很多方法可以实现您的目标,您可能经常会在更好的解决方案上遇到困难。请向我们展示您的完整代码,而不是伪代码。这不是您定义字符串的方式。Thread.S的输出