당신은 Parallel.Invoke을 사용할 수 있습니다 : 당신의 편집 긴 예를 바탕으로
while (true)
{
Parallel.Invoke(BinaryConversion, ValidateEmails);
System.Threading.Thread.Sleep(1000);
}
: 귀하의 의견을 바탕으로
namespace CSharp
{
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
bool executebinary = true;
bool emailvalidation = false;
while (true)
{
Parallel.Invoke(
() =>
{
if (executebinary)
{
BinaryConversion();
}
},
() =>
{
if (emailvalidation)
{
ValidateEmails();
}
});
System.Threading.Thread.Sleep(1000);
}
}
private static void ValidateEmails()
{
}
private static void BinaryConversion()
{
}
}
}
로부터의 간섭없이 simultanously 실행 모두 기타 :
namespace CSharp
{
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
bool executebinary = true;
bool emailvalidation = false;
Parallel.Invoke(
() =>
{
while(true) if (executebinary) BinaryConversion();
},
() =>
{
while(true) if (emailvalidation) ValidateEmails();
});
}
}
private static void ValidateEmails()
{
}
private static void BinaryConversion()
{
}
}
}
두 개의 System.Timers.Timer를 사용하십시오. – Rotem
Btw, 1000ms는 1 분이 아니라 1 초입니다. – Rotem
질문 # 1, 당신은 A와 B 기능이 있습니다. 첫 번째 틱에서 두 가지를 모두 실행 한 다음 1 분 정도 기다립니다. 분이 끝나면 A는 끝나지 않고 B는 끝납니다. A가 완료되었는지 여부에 관계없이 B를 실행하고 싶지만 A가 아직 완료되지 않았 으면 A를 다시 시작 하시겠습니까? A의 이전 사본과 새로운 사본이 모두 실행됩니다. –