Вы можете просто добавить значение token
в цикл foreach
:
foreach ($token_values as $token) {
$request[] = array_merge(array('token' => $token), getCards($merchantId, $merchantKey, $token));
}
Вероятно, Вы просто хотите закрыть форму всплеска и не отправить ее для поддержки.
Я выполняю форму всплеска на отдельном потоке (это - класс SplashForm):
class SplashForm
{
//Delegate for cross thread call to close
private delegate void CloseDelegate();
//The type of form to be displayed as the splash screen.
private static SplashForm splashForm;
static public void ShowSplashScreen()
{
// Make sure it is only launched once.
if (splashForm != null)
return;
Thread thread = new Thread(new ThreadStart(SplashForm.ShowForm));
thread.IsBackground = true;
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
static private void ShowForm()
{
splashForm = new SplashForm();
Application.Run(splashForm);
}
static public void CloseForm()
{
splashForm.Invoke(new CloseDelegate(SplashForm.CloseFormInternal));
}
static private void CloseFormInternal()
{
splashForm.Close();
splashForm = null;
}
...
}
и основная функция программы похожа на это:
[STAThread]
static void Main(string[] args)
{
SplashForm.ShowSplashScreen();
MainForm mainForm = new MainForm(); //this takes ages
SplashForm.CloseForm();
Application.Run(mainForm);
}
Я полагаю, что это мог бы быть недостаток дизайна в моем текущем дизайне!
Я думаю лучший способ достигнуть того, в чем я нуждаюсь, должен был управлять всем от MainForm. Таким образом, я могу использовать:
Application.Run(new MainForm());
Это затем будет ответственно за показ/обновление/сокрытие SplashScreen. Таким образом, у меня может быть необходимый комплекс intactions с остальной частью системы, управляемой MainForm.
Если я понял правильно, необходимо просто использовать Приложение. Работайте на своей основной форме. Так любое шоу Ваш всплеск сначала только при помощи чего-то как:
using(MySplash form = new MySplash())
form.ShowDialog();
И затем закройте его вручную в MySplash каждый раз, когда Вы хотите.
Или покажите его в своем основном обработчике событий Загрузки форм и затем ожидайте его для закрытия или безотносительно пока Вы не позволите методу Загрузки завершиться. (Установка Possibly, Видимая ко лжи перед показом его и назад к истинному впоследствии.
Это очень важно для предотвращения того, чтобы ваш экран-заставка перехватил ваше внимание и отодвинул вашу основную форму на задний план после ее закрытия:
protected override bool ShowWithoutActivation {
get { return true; }
}
Добавьте это в класс формы заставки.