Я работаю над проектом С#, хочу сделать небольшую паузу около 2 секунд внутри процедуры.
На самом деле я попытался использовать Invoke, но, как вы знаете, мы не можем использовать его внутри класса для этой процедуры.
Вот мой код для более подробной информации:
public class GenerateFile
{
public CSPFEnumration.ProcedureResult GenerateFaxFile(string Daftar_No, string Channelno, string NationalCode)
{
string script = string.Format(" DECLARE @RC INT " +
" DECLARE @Daftar_No INT = '{0}' " +
" DECLARE @hokm_type_code INT = 100 " +
" DECLARE @Channelno INT = '{1}' " +
" DECLARE @Id_No BIGINT = '{2}' " +
" EXEC @rc = [dbo].[Hokm_with_type] @Daftar_No, @hokm_type_code, @Channelno, @Id_No ",
Daftar_No,
Channelno,
NationalCode);
try
{
IEnumerable<string> commandStrings = Regex.Split(script, @"^\s*GO\s*$",
RegexOptions.Multiline | RegexOptions.IgnoreCase);
Connect();
foreach (string commandString in commandStrings)
{
if (commandString.Trim() != "")
{
using (var command = new SqlCommand(commandString, Connection))
{
command.ExecuteNonQuery();
}
}
}
DisConnect();
string FaxFilePath = InternalConstant.FaxFilePath + "\\" + string.Format("Lhokm{0}.tif", Channelno);
// I want to make a pause in here without locking UI
if (File.Exists(FaxFilePath))
return CSPFEnumration.ProcedureResult.Success;
else
return CSPFEnumration.ProcedureResult.Error;
}
catch (Exception ex)
{
InternalDatabase.GetInstance.InsertToPensionOrganizationException(ex);
return CSPFEnumration.ProcedureResult.Error;
}
}
}
Я тоже попробовал, но я не могу вернуть правильное значение. потому что в этой процедуре, если я буду использовать await, значение вернется до окончания ожидания.
Edit:
А также я не хочу использовать Thread.Sleep
, потому что он заблокирует пользовательский интерфейс.
Спасибо за любую помощь.