질문을하기 전에 질문을했는데 좋은 방법으로 설명하지 않았다는 것을 알았으므로 여기에 제안 된 코드 클래스 패킷 처리기 코드가 있습니다. X에서, Y 및 actualy 제조 나 오브젝트 정의 한때 actualx에서 그들 패킷의 값을 얻을 내가 보내 변수)클래스간에 값을 보내는 올바른 방법
public class PacketHandler : GUI
{
GameUser role;
public PacketHandler(GameUser who)
{
role = who;
}
ushort Actualx, Actualy;
public PacketHandler(ref ushort x ,ref ushort y)
{
x = Actualx; y = Actualy;
}
public unsafe void HandleServer(byte[] data)
{
.
.
.
case 10010:
{
if (BitConverter.ToUInt16(data, 8) == 1002)
{
Actualx = BitConverter.ToUInt16(data, 24);
Actualy = BitConverter.ToUInt16(data, 26);
}
break;
}
이 값을 변경 저장되도록 2 USHORT 심판을 받아 구조체가있다 정의 할 객체 매개 변수에 오는 모든 초심 심판에 그들을주기 위해
여기 다른 클래스
public class ClientBase
{
GameUser role2;
public ClientBase(GameUser role)
{
role2 = role;
Thread T = new Thread(HuntThread) { Name = "Hunt Thread" };
T.Start(this);
}
.
.
.
public void HuntThread(object Sender)
{
ClientBase Client = Sender as ClientBase;
while (true)
{
Monster Target = GetNextkill();
if (Target != null)
{
Thread.Sleep(1000);
ProxyParadise.Network.Packets.PacketHandler getxandy = new ProxyParadise.Network.Packets.PacketHandler(ref X, ref Y);
ProxyParadise.Network.Packets.PacketStructure ps = new ProxyParadise.Network.Packets.PacketStructure();
.
.
.
와 진짜 문제는 내가 그것을 추적 할 때 내가 actualy 그러나 그들이 값을 가지고 있는지 메신저, actualx에서 0 발견, 그래서 난 메신저 바보 같은 일을 생각, x와 y에서 0을 찾을 수있다
그래서 모든 경우에,이 코드에서 나를 도울 수 없거나, 스레딩을 사용하면서 다른 클래스의 값을 얻는 적절한 방법을 말해 주시길 바랍니다. 모든 분들께 제 모 형을 제발 지우십시오. 지금은 더 나은 방법으로 여기
당신이 실제로 원하는 것은 내가 설정 한 후에 클래스의 값을 업데이트하는 것이고, 여전히 이전 값을 참조하는 것입니다. 이것은 이벤트 및 속성에 대한 작업처럼 들립니다 ... 글쎄, 세마포 및 잠금 장치 ... – Nevyn