Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#string Thread.Sleep()_C#_String_Alias - Fatal编程技术网

C#string Thread.Sleep()

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

嗨,我现在正在使用Thread.Sleep(200);在文本之间,它看起来像旧的口袋妖怪游戏,文本不是一下子出现的,而是像这样逐字逐句地有点滞后

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的输出