아주 간단한 프로그램을 만들었지 만 오른쪽 상단의 빨간 X를 사용하여 프로그램을 닫을 때 프로세스 아래에 나열된 Windows 작업 관리자에서 볼 수 있습니다. 프로그램이 계속 실행 중이고 메모리를 사용 중입니다. 어떻게 이것을 피할 수 있습니까?닫기 후에 Windows 양식이 닫히지 않습니까?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework;
namespace PS3Controller
{
public partial class Form1 : Form
{
GamePadState pad;
Vector2 centroIzq = new Vector2(138, 132);
Vector2 centroDer = new Vector2(139, 252);
float distancia = 20f;
float ledIzqAngulo = 0;
float ledDerAngulo = 0;
float ledIzqVelocidad = 0.0022f;
float ledDerVelocidad = 0.0022f;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
pad = GamePad.GetState(Microsoft.Xna.Framework.PlayerIndex.One);
if (pad.Buttons.Y == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledTtriangulo.Visible = true;
else
ledTtriangulo.Visible = false;
if (pad.Buttons.X == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledCuadrado.Visible = true;
else
ledCuadrado.Visible = false;
if (pad.Buttons.A == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledX.Visible = true;
else
ledX.Visible = false;
if (pad.Buttons.B == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledCirculo.Visible = true;
else
ledCirculo.Visible = false;
if (pad.DPad.Left == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledIzq.Visible = true;
else
ledIzq.Visible = false;
if (pad.DPad.Right == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledDer.Visible = true;
else
ledDer.Visible = false;
if (pad.DPad.Up == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledArriba.Visible = true;
else
ledArriba.Visible = false;
if (pad.DPad.Down == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledAbajo.Visible = true;
else
ledAbajo.Visible = false;
if (pad.Buttons.Start == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledStart.Visible = true;
else
ledStart.Visible = false;
if (pad.Buttons.Back == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledSelect.Visible = true;
else
ledSelect.Visible = false;
if (pad.Buttons.LeftShoulder == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledL1.Visible = true;
else
ledL1.Visible = false;
if (pad.Buttons.RightShoulder == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledR1.Visible = true;
else
ledR1.Visible = false;
if (pad.Buttons.BigButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
ledHome.Visible = true;
else
ledHome.Visible = false;
if (pad.Triggers.Left > 0)
ledL2.Visible = true;
else
ledL2.Visible = false;
if (pad.Triggers.Right > 0)
ledR2.Visible = true;
else
ledR2.Visible = false;
lblIzqX.Text = pad.ThumbSticks.Left.X.ToString();
lblIzqY.Text = pad.ThumbSticks.Left.Y.ToString();
lblDerX.Text = pad.ThumbSticks.Right.X.ToString();
lblDerY.Text = pad.ThumbSticks.Right.Y.ToString();
Vector2 ledIzqPos = new Vector2(
(float)Math.Cos(ledIzqAngulo) * distancia,
(float)Math.Sin(ledIzqAngulo) * distancia);
Vector2 ledDerPos = new Vector2(
(float)Math.Cos(ledDerAngulo) * distancia,
(float)Math.Sin(ledDerAngulo) * distancia);
if (pad.ThumbSticks.Right.X == 0 &&
pad.ThumbSticks.Right.Y == 0)
{
ledPadDer.Top = 139;
ledPadDer.Left = 252;
}
if (pad.ThumbSticks.Left.X == 0 &&
pad.ThumbSticks.Left.Y == 0)
{
ledPadIzq.Top = 138;
ledPadIzq.Left = 132;
}
}
}
}
코드는 어디에 있습니까? –
여러 가지 이유가있을 수 있습니다. 자세한 내용을 추가 할 수 있습니까? –
코드를 보여 주시면 도와 드릴 수 있습니다. 우리에게 프로그램을 닫는 코드를 보여주십시오 –