Как ждание некоего количества времени между каждым выполнением метода

Совсем во все,

У меня есть приложение, которое завершало бы несколько Веб услуг. То, что делает это приложение, которое он получает много пользователей и создает введенные в файл .csv для нескольких проектов.

Мне хотелось бы делать выполнение для некоего количества пользователей, каждые 100 или 200 пользователей приложение ждало 30 секунд и продолжите Ваше выполнение.

Что это realize до тех пор, пока не будет завершено выполнение.

Я хочу предотвратить груз Querys к базе данных и избежать того, чтобы трафик насытился благодаря тому, что я делаю некоторые, названные Веб.

Из какой формы я могу делать это?

Большое спасибо перед рукой.

Здесь эта часть моего кода:

UserData[] userIds = GetUserID();
if (userIds.Length > 0)
{

    List<string> multiUserIDs = new List<string>();

    foreach (var userdata in userIds)
    {
        multiUserIDs.Add(userdata.List[0].ToString());
    }


    string testName = "test_";
    string outCsvFile = string.Format(@"D:\\TasksForAllProjects\\{0}.csv", testName + DateTime.Now.ToString("_yyyyMMdd HHmms")); 
    String newLine = "";
    var stream = File.CreateText(outCsvFile);

    stream.WriteLine("ProjectName,UserFirstName,UserLastName,TaskStatus);

    string temp = "";

    var AllProjectIds = proj.ProjectID; //Esto viene de otra llamada hecha mas arriba

    string[] projectIDs = new string[] { AllProjectIds }; // all projects
    string singleUserID = "";
    string[] taskStatus = new string[] { "notcompleted" };  

    TaskEntry[] result = GetTasks(projectIDs, singleUserID, multiUserIDs.ToArray(),taskStatus); 

    newLine = string.Format("\"{0}\",\"{1}\",\"{2}\"",
                    item.ProjectTitle,
                    item.UserID,
                    status);
        //Creating a new file when new entries are found.
        stream.WriteLine(newLine);
}
stream.Close();

Я вижу, что проблема смогла бы того, чтобы приходить из переменной multiUserIDs у которого есть совокупность пользователей.

Тогда он был бы должен выполнять количества пользователей, которое приходит из этой переменной.

5
задан 29.04.2016, 22:58
2 ответа

Если ты производишь csv, не реализуй это, таким образом, используй книжный магазин, как то, чтобы быть

CsvHelper

тогда ты сможешь mapear полные данные без необходимости пробегать реестр из-за реестра.

Я Понимаю, что у тебя есть класс в переменной result в этом случае, экспорт она прямая

var csv = new CsvWriter( textWriter );
csv.WriteRecords( result );

больше, если он анализирует документацию, ты мог бы настраивать mapping и произведи файл в единственной операции, таким образом, ты не был бы должен использовать никакого задержания кода.

>>, если я выполняю так называемую большую часть времени, у меня есть timeout или заморозь базу данных

я не вижу как дела возвращая реестры, но эта проблема не поколение csv, а как ты возвращаешь данные, может быть, будь должен оценивать использовать один DataReader

, Но останавливать код мне не кажется хорошей альтернативой.

4
ответ дан 24.11.2019, 14:30

ты должен спать трэд:

System.Threading.Thread.Sleep(30000);

Параметр, который он получает, находится в Миллисекундах.

В любом случае делать это иногда не хорошая идея, и ты был бы должен ставить причина ты должен спать приложение столько времени. Если это что-то, что будет упорствовать во времени, ты был бы должен считать другой рисунок.

9
ответ дан 24.11.2019, 14:30