Аннотации не только для java они также существуют в c++, они так или иначе похожи на аннотации из java.
// MyCode.h
# include <CodeAnalysis/SourceAnnotations.h>
using namespace vc_attributes;
class CMyClass
{
public:
void f ( [Pre ( Valid = Yes )] int *pWidth );
// code ...
};
// MyCode.cpp
#include "MyCode.h"
void CMyClass::f ( [Pre (Valid = Yes)] int pWidth )
{
}
Дополнительную информацию можно найти в MSDN: http://msdn.microsoft.com/en-us/library/ms182036 (VS.80) .aspx
-121--4553974-Необходимо просто создать файл cron, а затем использовать exec для настройки этого cron:
$cron_file = 'cron_filename';
// Create the file
touch($cron_file);
// Make it writable
chmod($cron_file, 0777);
// Save the cron
file_put_contents($cron_file, '* * * * * your_command');
// Install the cron
exec('crontab cron_file');
Это требует, чтобы пользователь, под которым запущен PHP, имел право создавать crontabs. Этот файл cron по умолчанию заменяет любые другие cron для этого пользователя, поэтому не забудьте спросить пользователя, хочет ли он применить cron. Также убедитесь, что папка, в которую вы записываете файл crontab, доступна для записи.
-121--4321235-При присвоении функции setTimeout в этой форме функция выполняется вместо передачи в setTimeout. У вас есть три альтернативы, чтобы сделать его работать:
Дайте сначала функцию, затем тайм-аут и параметры в качестве последних аргументов:
setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
Или просто написать последовательность, которая будет вычислена:
setTimeout('doRequest('+url+','+proxys[proxy]+')', proxytimeout);
Третий стиль - передать анонимную функцию, которая вызывает функцию. Обратите внимание, что в этом случае вы должны сделать это в замыкании, чтобы предотвратить изменение значений в цикле, поэтому он получает бит хитрость:
(function(u, p, t) {
setTimeout(function() { doRequest(u, p); }, t);
})(url, proxys[proxy], proxytimeout);
Второй формат является бит hacky, но работает, тем не менее, если аргументы скалярные значения (последовательности, ints и т.д.). Третий формат немного неясен, так что в этом случае первый вариант, очевидно, будет работать лучше для вас.
Вы неправильно поняли функцию setTimeout
.
Функция setTimeout
принимает функцию и выполняет ее позже.
Записывая setTimeout(doRequest(url,proxyys[proxy]), proxytimeout)
, вы _вызываете функцию doRequest
(немедленно) и передаете результат (предполагая, что она возвращает другую функцию) в setTimeout
.
Вам нужно передать параметры doRequest
в setTimeout
, например:
setTimeout(doRequest, proxytimeout, url, proxys[proxy]);
Это передаст setTimeout
самой функции doRequest
(без ее первого вызова), а также передаст ей параметры для передачи в doRequest
, когда она в конце концов вызовет ее.
Эта линия Вот проблема:
setTimeout(doRequest(url,proxys[proxy]), proxytimeout);
написание Dorequest ()
на самом деле вызывает функцию. То, что вы хотите, это пропустить саму функцию:
setTimeout(doRequest, proxytime, url, proxys[proxy]);